
/* WARNING: Type propagation algorithm not settling */

re_dfastate_t *
merge_state_with_log(reg_errcode_t *err,re_match_context_t *mctx,re_dfastate_t *next_state)

{
  byte bVar1;
  bool bVar2;
  anon_union_4_5_a39f51ca_for_opr aVar3;
  anon_union_4_5_a39f51ca_for_opr aVar4;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  undefined3 extraout_var_01;
  undefined3 extraout_var_02;
  undefined3 extraout_var_03;
  undefined3 extraout_var_04;
  anon_union_4_5_a39f51ca_for_opr aVar5;
  int iVar6;
  re_dfastate_t *prVar7;
  re_backref_cache_entry *prVar8;
  wint_t *pwVar9;
  anon_union_4_5_a39f51ca_for_opr aVar10;
  _Bool _Var38;
  uint uVar11;
  bitset_word_t bVar12;
  re_state_table_entry *prVar13;
  byte *pbVar14;
  re_bitset_ptr_t pbVar15;
  re_sub_match_top_t **pprVar16;
  re_sub_match_top_t *prVar17;
  re_sub_match_top_t *prVar18;
  undefined1 *puVar19;
  re_token_t *prVar20;
  int *piVar21;
  re_context_type rVar22;
  re_node_set *prVar23;
  re_dfastate_t **pprVar24;
  int iVar25;
  int iVar26;
  re_dfa_t *prVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  int iVar31;
  uint uVar32;
  Idx **ppIVar33;
  Idx IVar34;
  bool bVar39;
  re_dfa_t *prVar35;
  int iVar36;
  char cVar40;
  reg_errcode_t rVar37;
  re_context_type *prVar41;
  anon_union_4_5_a39f51ca_for_opr *paVar42;
  re_context_type rVar43;
  anon_union_4_5_a39f51ca_for_opr preg;
  uint uVar44;
  char *pattern;
  anon_union_4_5_a39f51ca_for_opr aVar45;
  anon_union_4_5_a39f51ca_for_opr aVar46;
  uint *puVar47;
  anon_union_4_5_a39f51ca_for_opr *paVar48;
  re_node_set **pprVar49;
  anon_union_4_5_a39f51ca_for_opr aVar50;
  anon_union_4_5_a39f51ca_for_opr in_a3;
  anon_union_4_5_a39f51ca_for_opr aVar51;
  anon_union_4_5_a39f51ca_for_opr aVar52;
  int iVar53;
  reg_syntax_t syntax;
  Idx *pIVar54;
  anon_union_4_5_a39f51ca_for_opr aVar55;
  wchar_t *pwVar56;
  anon_union_4_5_a39f51ca_for_opr aVar57;
  re_dfastate_t ***set;
  int iVar58;
  anon_union_4_5_a39f51ca_for_opr aVar59;
  anon_union_4_5_a39f51ca_for_opr aVar60;
  uint uVar61;
  anon_union_4_5_a39f51ca_for_opr unaff_s4;
  uchar *puVar62;
  re_dfastate_t **unaff_s6;
  anon_union_4_5_a39f51ca_for_opr aVar63;
  anon_union_4_5_a39f51ca_for_opr aVar64;
  anon_union_4_5_a39f51ca_for_opr aVar65;
  re_dfastate_t *prVar66;
  undefined *puVar67;
  code *pcVar68;
  bin_tree_storage_t *pbVar69;
  anon_union_4_5_a39f51ca_for_opr unaff_s8;
  code *pcVar70;
  undefined8 uVar71;
  re_dfastate_t *prStack_460;
  int iStack_458;
  anon_union_4_5_a39f51ca_for_opr *paStack_454;
  anon_union_4_5_a39f51ca_for_opr aStack_448;
  int iStack_428;
  anon_union_4_5_a39f51ca_for_opr aStack_3ec;
  anon_union_4_5_a39f51ca_for_opr aStack_3e8;
  anon_union_4_5_a39f51ca_for_opr aStack_3e4;
  anon_union_4_5_a39f51ca_for_opr aStack_3e0;
  anon_union_4_5_a39f51ca_for_opr aStack_3dc;
  anon_union_4_5_a39f51ca_for_opr aStack_3d8;
  anon_union_4_5_a39f51ca_for_opr aStack_3d4;
  undefined4 uStack_3d0;
  undefined4 uStack_3cc;
  undefined4 uStack_3c8;
  anon_union_4_5_a39f51ca_for_opr aStack_3c4;
  anon_union_4_5_a39f51ca_for_opr aStack_3c0;
  int *piStack_3bc;
  int iStack_3b8;
  int iStack_3ac;
  anon_union_4_5_a39f51ca_for_opr aStack_3a8;
  anon_union_4_5_a39f51ca_for_opr aStack_3a4;
  uint uStack_3a0;
  anon_union_4_5_a39f51ca_for_opr aStack_39c;
  anon_union_4_5_a39f51ca_for_opr aStack_398;
  anon_union_4_5_a39f51ca_for_opr aStack_394;
  anon_union_4_5_a39f51ca_for_opr aStack_390;
  anon_union_4_5_a39f51ca_for_opr aStack_38c;
  undefined4 uStack_388;
  uint uStack_384;
  int iStack_380;
  byte bStack_37c;
  byte bStack_37b;
  byte bStack_37a;
  byte bStack_379;
  char cStack_378;
  byte bStack_377;
  byte bStack_376;
  anon_union_4_5_a39f51ca_for_opr aStack_374;
  anon_union_4_5_a39f51ca_for_opr aStack_370;
  anon_union_4_5_a39f51ca_for_opr aStack_36c;
  anon_union_4_5_a39f51ca_for_opr aStack_368;
  anon_union_4_5_a39f51ca_for_opr aStack_364;
  anon_union_4_5_a39f51ca_for_opr aStack_360;
  anon_union_4_5_a39f51ca_for_opr aStack_35c;
  undefined4 uStack_358;
  uint uStack_354;
  int iStack_350;
  int iStack_34c;
  uint uStack_344;
  int iStack_340;
  char *pcStack_33c;
  anon_union_4_5_a39f51ca_for_opr aStack_338;
  anon_union_4_5_a39f51ca_for_opr aStack_334;
  anon_union_4_5_a39f51ca_for_opr aStack_330;
  anon_union_4_5_a39f51ca_for_opr *paStack_32c;
  anon_union_4_5_a39f51ca_for_opr aStack_328;
  anon_union_4_5_a39f51ca_for_opr aStack_324;
  anon_union_4_5_a39f51ca_for_opr aStack_320;
  anon_union_4_5_a39f51ca_for_opr aStack_31c;
  anon_union_4_5_a39f51ca_for_opr aStack_318;
  code *pcStack_314;
  anon_union_4_5_a39f51ca_for_opr aStack_308;
  anon_union_4_5_a39f51ca_for_opr aStack_300;
  anon_union_4_5_a39f51ca_for_opr aStack_2fc;
  anon_union_4_5_a39f51ca_for_opr aStack_2f8;
  anon_union_4_5_a39f51ca_for_opr aStack_2f4;
  anon_union_4_5_a39f51ca_for_opr aStack_2f0;
  anon_union_4_5_a39f51ca_for_opr aStack_2ec;
  re_dfastate_t **pprStack_2e8;
  anon_union_4_5_a39f51ca_for_opr aStack_2e4;
  re_dfastate_t ***ppprStack_2e0;
  re_dfastate_t **pprStack_2dc;
  re_dfastate_t **pprStack_2d8;
  int iStack_2d4;
  anon_union_4_5_a39f51ca_for_opr aStack_2cc;
  re_node_set rStack_2c8;
  anon_union_4_5_a39f51ca_for_opr aaStack_2bc [8];
  anon_union_4_5_a39f51ca_for_opr aStack_29c;
  wchar_t *pwStack_298;
  Idx *pIStack_294;
  Idx IStack_290;
  Idx *pIStack_28c;
  re_node_set *prStack_288;
  re_node_set *prStack_284;
  re_node_set *prStack_280;
  anon_union_4_5_a39f51ca_for_opr aaStack_27c [4];
  anon_union_4_5_a39f51ca_for_opr aStack_26c;
  anon_union_4_5_a39f51ca_for_opr aStack_268;
  anon_union_4_5_a39f51ca_for_opr aStack_264;
  anon_union_4_5_a39f51ca_for_opr aStack_260;
  anon_union_4_5_a39f51ca_for_opr aStack_25c;
  anon_union_4_5_a39f51ca_for_opr aStack_258;
  anon_union_4_5_a39f51ca_for_opr aStack_254;
  anon_union_4_5_a39f51ca_for_opr aStack_250;
  anon_union_4_5_a39f51ca_for_opr aStack_24c;
  anon_union_4_5_a39f51ca_for_opr aStack_248;
  anon_union_4_5_a39f51ca_for_opr aStack_244;
  anon_union_4_5_a39f51ca_for_opr aStack_240;
  anon_union_4_5_a39f51ca_for_opr aStack_23c;
  anon_union_4_5_a39f51ca_for_opr aStack_238;
  code *pcStack_234;
  anon_union_4_5_a39f51ca_for_opr aStack_210;
  anon_union_4_5_a39f51ca_for_opr aStack_204;
  anon_union_4_5_a39f51ca_for_opr aStack_200;
  re_node_set rStack_1fc;
  anon_union_4_5_a39f51ca_for_opr aStack_1f0;
  anon_union_4_5_a39f51ca_for_opr aaStack_1ec [6];
  int iStack_1d4;
  int iStack_1d0;
  int iStack_1cc;
  anon_union_4_5_a39f51ca_for_opr aStack_1c4;
  anon_union_4_5_a39f51ca_for_opr aStack_1c0;
  anon_union_4_5_a39f51ca_for_opr aStack_1bc;
  anon_union_4_5_a39f51ca_for_opr aStack_1b8;
  anon_union_4_5_a39f51ca_for_opr aStack_1b0;
  undefined1 uStack_1a8;
  byte bStack_1a7;
  byte bStack_1a6;
  char cStack_1a5;
  int iStack_1a0;
  anon_union_4_5_a39f51ca_for_opr aStack_19c;
  anon_union_4_5_a39f51ca_for_opr aStack_198;
  anon_union_4_5_a39f51ca_for_opr aStack_194;
  anon_union_4_5_a39f51ca_for_opr aStack_190;
  anon_union_4_5_a39f51ca_for_opr aStack_18c;
  anon_union_4_5_a39f51ca_for_opr aStack_188;
  anon_union_4_5_a39f51ca_for_opr aStack_184;
  anon_union_4_5_a39f51ca_for_opr aStack_180;
  re_dfastate_t *prStack_17c;
  anon_union_4_5_a39f51ca_for_opr aStack_178;
  code *pcStack_174;
  anon_union_4_5_a39f51ca_for_opr aStack_160;
  anon_union_4_5_a39f51ca_for_opr aStack_15c;
  code *pcStack_158;
  anon_union_4_5_a39f51ca_for_opr aStack_150;
  int iStack_14c;
  wctype_t *pwStack_148;
  undefined4 uStack_144;
  undefined4 uStack_140;
  anon_union_4_5_a39f51ca_for_opr aStack_13c;
  code *pcStack_138;
  re_dfa_t *prStack_134;
  code *pcStack_130;
  code *pcStack_12c;
  re_node_set rStack_128;
  anon_union_4_5_a39f51ca_for_opr aStack_11c;
  anon_union_4_5_a39f51ca_for_opr aStack_118;
  anon_union_4_5_a39f51ca_for_opr aStack_114;
  anon_union_4_5_a39f51ca_for_opr aStack_110;
  re_node_set *prStack_10c;
  anon_union_4_5_a39f51ca_for_opr aStack_108;
  anon_union_4_5_a39f51ca_for_opr aStack_104;
  anon_union_4_5_a39f51ca_for_opr aStack_100;
  re_dfastate_t *prStack_fc;
  anon_union_4_5_a39f51ca_for_opr aStack_f8;
  code *pcStack_f4;
  anon_union_4_5_a39f51ca_for_opr aStack_e0;
  byte *pbStack_dc;
  undefined *puStack_d8;
  anon_union_4_5_a39f51ca_for_opr aStack_cc;
  anon_union_4_5_a39f51ca_for_opr aStack_c8;
  anon_union_4_5_a39f51ca_for_opr aStack_c4;
  code *pcStack_c0;
  re_backref_cache_entry *prStack_bc;
  code *pcStack_b8;
  anon_union_4_5_a39f51ca_for_opr aStack_b4;
  anon_union_4_5_a39f51ca_for_opr aStack_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  code *pcStack_a4;
  re_dfa_t *prStack_a0;
  int iStack_9c;
  anon_union_4_5_a39f51ca_for_opr aStack_94;
  anon_union_4_5_a39f51ca_for_opr aStack_90;
  anon_union_4_5_a39f51ca_for_opr aStack_8c;
  anon_union_4_5_a39f51ca_for_opr aStack_88;
  anon_union_4_5_a39f51ca_for_opr aStack_84;
  anon_union_4_5_a39f51ca_for_opr aStack_80;
  anon_union_4_2_91654ee9_for___value aStack_7c;
  re_node_set *prStack_78;
  anon_union_4_5_a39f51ca_for_opr aStack_74;
  re_match_context_t *prStack_70;
  re_dfastate_t *prStack_6c;
  anon_union_4_5_a39f51ca_for_opr aStack_68;
  anon_union_4_5_a39f51ca_for_opr aStack_64;
  anon_union_4_5_a39f51ca_for_opr aStack_60;
  reg_errcode_t *prStack_5c;
  re_dfastate_t **pprStack_58;
  re_node_set next_nodes;
  
  aVar5 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_0003e314;
  aVar59 = (anon_union_4_5_a39f51ca_for_opr)(mctx->input).cur_idx;
  aVar60 = (anon_union_4_5_a39f51ca_for_opr)mctx->dfa;
  aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx;
  prVar7 = next_state;
  if (mctx->state_log_top < (int)aVar59) {
    mctx->state_log[aVar59.idx] = next_state;
    mctx->state_log_top = (Idx)aVar59;
LAB_00024fd0:
    iVar6 = *(Idx *)(aVar60.idx + 0x4c);
LAB_00024fd4:
    aVar64 = (anon_union_4_5_a39f51ca_for_opr)next_state;
    if ((iVar6 != 0) &&
       (aVar60.sbcset = (re_bitset_ptr_t)&prVar7->nodes, prVar7 != (re_dfastate_t *)0x0)) {
      aVar46 = aVar60;
      aVar64 = aVar59;
      rVar37 = check_subexp_matching_top(mctx,(re_node_set *)aVar60.mbcset,aVar59.idx);
      *err = rVar37;
      if (rVar37 == _REG_NOERROR) {
        if ((prVar7->field_0x34 & 2) != 0) {
          aVar46 = aVar60;
          rVar37 = transit_state_bkref(mctx,(re_node_set *)aVar60.mbcset);
          *err = rVar37;
          if (rVar37 == _REG_NOERROR) {
            prVar7 = mctx->state_log[aVar59.idx];
          }
          else {
            prVar7 = (re_dfastate_t *)0x0;
          }
        }
      }
      else {
        prVar7 = (re_dfastate_t *)0x0;
      }
    }
  }
  else {
    unaff_s4.sbcset = (re_bitset_ptr_t)(mctx->state_log + aVar59.idx);
    if (*unaff_s4.sbcset == 0) {
      ((re_string_t *)&(unaff_s4.mbcset)->mbchars)->raw_mbs = (uchar *)next_state;
      goto LAB_00024fd0;
    }
    aVar64 = (anon_union_4_5_a39f51ca_for_opr)
             ((anon_union_4_5_a39f51ca_for_opr *)(*unaff_s4.sbcset + 0x28))->mbcset;
    if (next_state == (re_dfastate_t *)0x0) {
      next_nodes.alloc = *aVar64.sbcset;
      next_nodes.nelem = ((re_node_set *)&(aVar64.mbcset)->range_starts)->alloc;
      next_nodes.elems = (aVar64.mbcset)->range_ends;
      in_a3.ctx_type = re_string_context_at(&mctx->input,(Idx)(aVar59.idx + -1),mctx->eflags);
      next_state = (re_dfastate_t *)&next_nodes;
      aVar46 = aVar60;
      prVar7 = re_acquire_state_context
                         (err,(re_dfa_t *)aVar60.mbcset,(re_node_set *)next_state,in_a3.ctx_type);
      ((re_string_t *)&(unaff_s4.mbcset)->mbchars)->raw_mbs = (uchar *)prVar7;
      goto LAB_00024fd0;
    }
    unaff_s4 = (anon_union_4_5_a39f51ca_for_opr)next_state->entrance_nodes;
    aVar46 = unaff_s4;
    rVar37 = re_node_set_init_union
                       (&next_nodes,(re_node_set *)unaff_s4.mbcset,(re_node_set *)aVar64.mbcset);
    *err = rVar37;
    if (rVar37 == _REG_NOERROR) {
      in_a3.ctx_type = re_string_context_at(&mctx->input,(mctx->input).cur_idx + -1,mctx->eflags);
      unaff_s6 = mctx->state_log + aVar59.idx;
      next_state = (re_dfastate_t *)&next_nodes;
      aVar46 = aVar60;
      prVar7 = re_acquire_state_context
                         (err,(re_dfa_t *)aVar60.mbcset,(re_node_set *)next_state,in_a3.ctx_type);
      *unaff_s6 = prVar7;
      if ((re_dfa_t *)unaff_s4.sbcset == (re_dfa_t *)0x0) goto LAB_00024fd0;
      (*(code *)PTR_free_0003e320)(next_nodes.elems);
      iVar6 = *(Idx *)(aVar60.idx + 0x4c);
      goto LAB_00024fd4;
    }
    prVar7 = (re_dfastate_t *)0x0;
  }
  if ((re_dfa_t *)aVar5.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_0003e314) {
    return prVar7;
  }
  puVar67 = PTR___stack_chk_fail_0003e2f4;
  (*(code *)PTR___stack_chk_fail_0003e2f4)();
  puStack_d8 = puVar67 + 0x20ee4;
  aStack_74 = (anon_union_4_5_a39f51ca_for_opr)
              (*(anon_union_4_5_a39f51ca_for_opr **)(puVar67 + 0x19128))->mbcset;
  aVar63 = (anon_union_4_5_a39f51ca_for_opr)
           ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.idx + 0x54))->mbcset;
  aStack_94.sbcset = (re_bitset_ptr_t)0x0;
  prVar66 = (re_dfastate_t *)(aVar64.idx * 4);
  aVar45 = aVar63;
  aVar50 = in_a3;
  aVar51 = in_a3;
  prStack_70 = mctx;
  prStack_6c = prVar7;
  aStack_68 = aVar59;
  aStack_64 = aVar60;
  aStack_60 = unaff_s4;
  prStack_5c = err;
  pprStack_58 = unaff_s6;
  if ((*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx] == (re_dfastate_t *)0x0) {
    prVar23 = (re_node_set *)0x0;
    if (((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc != 0) {
      prVar66 = (re_dfastate_t *)
                (((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4);
      prVar7 = re_acquire_state(&aStack_94.idx,(re_dfa_t *)aVar63.mbcset,(re_node_set *)in_a3.mbcset
                               );
      prVar66->hash = (re_hashval_t)prVar7;
      aVar59 = aStack_94;
      puVar67 = puStack_d8;
      goto LAB_000253f8;
    }
LAB_000253c8:
    puVar62 = ((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4;
    puVar62[0] = '\0';
    puVar62[1] = '\0';
    puVar62[2] = '\0';
    puVar62[3] = '\0';
    aVar45 = aVar46;
    if (prVar23 == (re_node_set *)0x0) {
      aVar59.sbcset = (re_bitset_ptr_t)0x0;
      puVar67 = puStack_d8;
    }
    else {
LAB_000253d8:
      aVar59.sbcset = (re_bitset_ptr_t)0x0;
      puVar67 = puStack_d8;
      if (((*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx]->field_0x34 & 2) != 0) {
        aVar45 = aVar64;
        prStack_a0 = (re_dfa_t *)
                     search_cur_bkref_entry((re_match_context_t *)aVar5.mbcset,aVar64.idx);
        aVar59.sbcset = (re_bitset_ptr_t)0x0;
        puVar67 = puStack_d8;
        if (prStack_a0 != (re_dfa_t *)0xffffffff) {
          unaff_s8 = (anon_union_4_5_a39f51ca_for_opr)
                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.idx + 0x54))->mbcset;
          aStack_90.sbcset = (re_bitset_ptr_t)0x0;
          if (prVar23->nelem < 1) {
            aVar59.sbcset = (re_bitset_ptr_t)0x0;
          }
          else {
            iStack_9c = (int)prStack_a0 * 0x14;
            aStack_c4.sbcset = (re_bitset_ptr_t)0x0;
            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);
            aStack_b4.sbcset = (re_bitset_ptr_t)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);
            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);
            do {
              aVar63 = (anon_union_4_5_a39f51ca_for_opr)
                       ((anon_union_4_5_a39f51ca_for_opr *)(prVar23->elems + aStack_c4.idx))->
                       ctx_type;
              if ((((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)(aVar46.mbcset)->range_ends) ||
                  ((re_dfa_t *)aVar64.sbcset != (re_dfa_t *)(aVar46.mbcset)->char_classes)) &&
                 (*(char *)((unaff_s8.mbcset)->mbchars + aVar63.idx * 2 + 1) == '\x04')) {
                pcStack_b8 = (code *)(aVar63.idx * 0xc);
                prStack_bc = (re_backref_cache_entry *)(aVar63.ctx_type << 2);
                aStack_c8.idx = (Idx)prStack_a0;
                uStack_ac = *(undefined4 *)(puVar67 + -0x7ee8);
                uStack_a8 = *(undefined4 *)(puVar67 + -0x7ee8);
                aVar59.sbcset =
                     (re_bitset_ptr_t)
                     (iStack_9c + (int)&(*(re_backref_cache_entry **)(aVar5.idx + 0x74))->node);
                do {
                  in_a3 = aVar59;
                  if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)*in_a3.sbcset) {
                    iVar6 = (int)(in_a3.mbcset)->char_classes - (int)(in_a3.mbcset)->range_ends;
                    pbVar14 = (byte *)((int)aVar64.sbcset + iVar6);
                    if (iVar6 == 0) {
                      aStack_cc = **(anon_union_4_5_a39f51ca_for_opr **)
                                    (pcStack_b8 + (unaff_s8.mbcset)->nmbchars + 8);
                    }
                    else {
                      aStack_cc = *(anon_union_4_5_a39f51ca_for_opr *)
                                   ((int)&prStack_bc->node + (int)(unaff_s8.mbcset)->char_classes);
                    }
                    if ((((int)pbVar14 <= (int)(aVar46.mbcset)->char_classes) &&
                        (iVar6 = *(int *)(((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs +
                                         (int)pbVar14 * 4), aVar45 = aStack_cc, iVar6 != 0)) &&
                       (iVar6 = (*pcStack_c0)(iVar6 + 4), puVar67 = puStack_d8, iVar6 != 0)) {
                      aVar45.sbcset = (re_bitset_ptr_t)(aVar46.idx + 0x10);
                      aStack_e0 = aStack_cc;
                      aVar50 = aVar63;
                      aVar51 = aVar64;
                      pbStack_dc = pbVar14;
                      aStack_b0.sbcset = aVar45.sbcset;
                      iVar6 = (*(code *)aStack_b4)(aVar5.sbcset);
                      puVar67 = puStack_d8;
                      if (iVar6 == 0) {
                        if ((re_dfa_t *)aStack_90.sbcset == (re_dfa_t *)0x0) {
                          aStack_90.sbcset =
                               (re_bitset_ptr_t)((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs;
                          aVar51 = (anon_union_4_5_a39f51ca_for_opr)
                                   ((re_node_set *)&(aVar46.mbcset)->range_starts)->alloc;
                          aVar50 = (anon_union_4_5_a39f51ca_for_opr)(aVar46.mbcset)->range_ends;
                          aStack_84 = (anon_union_4_5_a39f51ca_for_opr)(aVar46.mbcset)->char_classes
                          ;
                          aStack_80 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar46.idx + 0x10);
                          aStack_7c = *(anon_union_4_2_91654ee9_for___value *)
                                       &(aVar46.mbcset)->nmbchars;
                          prStack_78 = (re_node_set *)(aVar46.mbcset)->ncoll_syms;
                          aVar45 = aStack_b0;
                          aStack_8c = aVar51;
                          aStack_88 = aVar50;
                          aVar59.sbcset =
                               (re_bitset_ptr_t)
                               re_node_set_init_copy((re_node_set *)&aStack_80,aStack_b0.sbcset);
                          puVar67 = puStack_d8;
                          if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_00025aa0;
                        }
                        aVar45 = aStack_c8;
                        aStack_88 = aVar63;
                        aStack_84 = aVar64;
                        _Var38 = re_node_set_insert((re_node_set *)&aStack_80,aStack_c8.idx);
                        if (CONCAT31(extraout_var,_Var38) == 0) {
                          aVar59.idx = 0xc;
                          puVar67 = puStack_d8;
                          goto LAB_00025aa0;
                        }
                        in_a3 = *(anon_union_4_5_a39f51ca_for_opr *)(aStack_90.sbcset + aVar64.idx);
                        aVar45.sbcset = (re_bitset_ptr_t)&aStack_90;
                        aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_a4)(aVar5.sbcset);
                        puVar67 = puStack_d8;
                        if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_00025aa0;
                        aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((re_node_set *)&(aVar46.mbcset)->range_starts)->alloc;
                        aVar51.sbcset = (re_bitset_ptr_t)(aVar64.idx + 1);
                        if (((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) &&
                           (aVar50 = aStack_90,
                           aVar59.sbcset =
                                (re_bitset_ptr_t)
                                merge_state_array((re_dfa_t *)unaff_s8.mbcset,
                                                  (re_dfastate_t **)aVar45.sbcset,aStack_90.sbcset,
                                                  aVar51.idx), puVar67 = puStack_d8,
                           (re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0)) goto LAB_00025aa0;
                        aVar59 = aStack_c8;
                        *(anon_union_4_5_a39f51ca_for_opr *)(aStack_90.sbcset + aVar64.idx) = in_a3;
                        iVar6 = (*pcStack_c0)(&aStack_80,aStack_c8.sbcset);
                        aVar45.sbcset = (re_bitset_ptr_t)(iVar6 + -1);
                        re_node_set_remove_at((re_node_set *)&aStack_80,aVar45.idx);
                        in_a3.sbcset = (re_bitset_ptr_t)
                                       (*(re_backref_cache_entry **)(aVar5.idx + 0x74) + aVar59.idx)
                        ;
                        puVar67 = puStack_d8;
                      }
                    }
                  }
                  aStack_c8.sbcset = (re_bitset_ptr_t)(aStack_c8.idx + 1);
                  aVar59 = (anon_union_4_5_a39f51ca_for_opr)&(in_a3.mbcset)->nmbchars;
                } while (*(char *)&((re_node_set *)(in_a3.idx + 0x10))->alloc != '\0');
              }
              aStack_c4.sbcset =
                   (re_bitset_ptr_t)
                   ((int)&((re_string_t *)&(aStack_c4.mbcset)->mbchars)->raw_mbs + 1);
              aVar59.sbcset = (re_bitset_ptr_t)0x0;
            } while (aStack_c4.idx < prVar23->nelem);
LAB_00025aa0:
            if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {
              (**(code **)(puVar67 + -0x7db0))(prStack_78);
              puVar67 = puStack_d8;
            }
          }
        }
      }
    }
  }
  else {
    prVar23 = &(*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx]->nodes;
    aVar50 = aVar64;
    if (((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc == 0) goto LAB_000253c8;
    aStack_90.sbcset = (re_bitset_ptr_t)0x0;
    aVar50 = in_a3;
    unaff_s8.sbcset = &re_acquire_state(&aStack_90.idx,(re_dfa_t *)aVar63.mbcset,in_a3.sbcset)->hash
    ;
    aVar59 = aStack_90;
    puVar67 = puStack_d8;
    if ((re_dfa_t *)aStack_90.sbcset == (re_dfa_t *)0x0) {
      aVar50.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;
      if (((re_node_set *)&(unaff_s8.mbcset)->nequiv_classes)->alloc == 0) {
        aStack_cc.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;
        aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                 ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc;
        aStack_90.idx = re_node_set_alloc((re_node_set *)aStack_cc.mbcset,aVar45.idx);
        if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {
          aVar59.idx = 0xc;
          puVar67 = puStack_d8;
          goto LAB_000253f8;
        }
        if (0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc) {
          aStack_c8.sbcset = (re_bitset_ptr_t)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);
          iVar6 = 0;
          do {
            aStack_90.sbcset = (re_bitset_ptr_t)0x0;
            aVar45.sbcset =
                 (re_bitset_ptr_t)
                 ((re_node_set *)(aVar63.mbcset)->nequiv_classes + (in_a3.mbcset)->range_ends[iVar6]
                 );
            aStack_90.sbcset = (re_bitset_ptr_t)(*aStack_c8.sbcset)(aStack_cc.sbcset);
            if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {
              aVar59.idx = 0xc;
              puVar67 = puStack_d8;
              goto LAB_000253f8;
            }
            iVar6 = iVar6 + 1;
          } while (iVar6 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc);
        }
      }
      aVar50.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;
      aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar23;
      aVar59.sbcset =
           (re_bitset_ptr_t)
           re_node_set_add_intersect(in_a3.sbcset,prVar23,(re_node_set *)aVar50.mbcset);
      puVar67 = puStack_d8;
      aStack_b4.idx = aVar59.idx;
      aStack_94.idx = aVar59.idx;
      if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;
      if (((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch != 0) {
        prStack_bc = *(re_backref_cache_entry **)(aVar5.idx + 0x74);
        if (0 < (int)((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch) {
          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);
          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);
          aStack_cc.sbcset = (re_bitset_ptr_t)0x0;
          do {
            prVar8 = prStack_bc +
                     (&((re_node_set *)(aVar46.mbcset)->ncoll_syms)->alloc)[aStack_cc.idx];
            if ((prVar8->subexp_from < aVar64.idx) && (aVar64.idx <= prVar8->str_idx)) {
              aVar51.sbcset = (re_bitset_ptr_t)(aVar63.mbcset)->mbchars;
              aStack_c8 = (anon_union_4_5_a39f51ca_for_opr)
                          ((anon_union_4_5_a39f51ca_for_opr *)(aVar51.sbcset + prVar8->node * 2))->
                          sbcset;
              if ((re_dfa_t *)aVar64.sbcset == (re_dfa_t *)prVar8->subexp_to) {
                iVar6 = ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc;
                if (0 < iVar6) {
                  paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(in_a3.mbcset)->range_ends;
                  paVar48 = paVar42 + iVar6;
                  aStack_c4.idx = -1;
                  aVar45.idx = -1;
                  do {
                    aVar59 = (anon_union_4_5_a39f51ca_for_opr)paVar42->mbcset;
                    ppIVar33 = (Idx **)(aVar51.sbcset + aVar59.idx * 2);
                    if (*(byte *)(ppIVar33 + 1) == 8) {
                      if ((re_dfa_t *)aStack_c8.sbcset == (re_dfa_t *)*ppIVar33) {
                        aVar45 = aVar59;
                      }
                    }
                    else if ((*(byte *)(ppIVar33 + 1) == 9) &&
                            ((re_dfa_t *)aStack_c8.sbcset == (re_dfa_t *)*ppIVar33)) {
                      aStack_c4 = aVar59;
                    }
                    paVar42 = paVar42 + 1;
                  } while (paVar42 != paVar48);
                  if ((int)aVar45 < 0) {
                    unaff_s8 = aStack_b4;
                    if (-1 < aStack_c4.idx) {
                      do {
                        pwVar9 = (wint_t *)(in_a3.mbcset)->range_ends;
LAB_00025600:
                        aVar59 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((anon_union_4_5_a39f51ca_for_opr *)(pwVar9 + unaff_s8.idx))->idx;
                        aStack_c8 = aVar59;
                        iVar6 = (*pcStack_c0)((re_node_set *)(aVar63.mbcset)->nequiv_classes +
                                              aVar59.idx,aStack_c4.sbcset);
                        if ((iVar6 == 0) &&
                           (iVar6 = (*pcStack_c0)((re_node_set *)(aVar63.mbcset)->ncoll_syms +
                                                  aVar59.idx,aStack_c4.sbcset),
                           aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23, iVar6 == 0)) {
                          aVar45 = aStack_c8;
                          aVar50 = in_a3;
                          aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset);
                          puVar67 = puStack_d8;
                          if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;
                          unaff_s8.sbcset = (re_bitset_ptr_t)(unaff_s8.idx + -1);
                        }
                        unaff_s8.sbcset =
                             (re_bitset_ptr_t)
                             ((int)&((re_string_t *)&(unaff_s8.mbcset)->mbchars)->raw_mbs + 1);
                      } while (unaff_s8.idx < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc)
                      ;
                    }
                  }
                  else {
                    aVar50 = in_a3;
                    aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23;
                    aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset);
                    puVar67 = puStack_d8;
                    if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;
                    if ((-1 < aStack_c4.idx) &&
                       (unaff_s8 = aStack_b4,
                       0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc)) {
                      pwVar9 = (wint_t *)(in_a3.mbcset)->range_ends;
                      goto LAB_00025600;
                    }
                  }
                }
              }
              else {
                unaff_s8 = aStack_b4;
                if (0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc) {
                  do {
                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                             ((anon_union_4_5_a39f51ca_for_opr *)
                             ((in_a3.mbcset)->range_ends + unaff_s8.idx))->mbcset;
                    if ((((byte)((re_token_t *)(aVar63.mbcset)->mbchars)[aVar45.idx].field_0x4 - 8 <
                          2) && (aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23,
                                (re_dfa_t *)aStack_c8.sbcset ==
                                (re_dfa_t *)
                                ((re_token_t *)(aVar63.mbcset)->mbchars)[aVar45.idx].opr.sbcset)) &&
                       (aVar50 = in_a3,
                       aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset),
                       puVar67 = puStack_d8, (re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0))
                    goto LAB_000253f8;
                    unaff_s8.sbcset =
                         (re_bitset_ptr_t)
                         ((int)&((re_string_t *)&(unaff_s8.mbcset)->mbchars)->raw_mbs + 1);
                  } while (unaff_s8.idx < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc);
                }
              }
            }
            aStack_cc.sbcset =
                 (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_cc.mbcset)->mbchars)->raw_mbs + 1)
            ;
          } while (aStack_cc.idx <
                   (int)((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch);
        }
        aStack_94.sbcset = (re_bitset_ptr_t)0x0;
      }
      puVar62 = ((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs;
      aVar45 = aVar63;
      aVar50 = in_a3;
      prVar7 = re_acquire_state(&aStack_94.idx,(re_dfa_t *)aVar63.mbcset,(re_node_set *)in_a3.mbcset
                               );
      *(re_dfastate_t **)(puVar62 + aVar64.idx * 4) = prVar7;
      aVar59 = aStack_94;
      puVar67 = puStack_d8;
      if ((re_dfa_t *)aStack_94.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;
      goto LAB_000253d8;
    }
  }
LAB_000253f8:
  if ((re_dfa_t *)aStack_74.sbcset == (re_dfa_t *)**(int **)(puVar67 + -0x7dbc)) {
    return (re_dfastate_t *)aVar59.sbcset;
  }
  pcVar68 = *(code **)(puVar67 + -0x7ddc);
  pcVar70 = sift_states_backward;
  aVar60 = aStack_74;
  (*pcVar68)();
  pcStack_f4 = pcVar70;
  aStack_f8.sbcset = unaff_s8.sbcset;
  prStack_fc = prVar66;
  aStack_100.sbcset = aVar63.sbcset;
  aStack_104.sbcset = aVar5.sbcset;
  aStack_108.sbcset = aVar59.sbcset;
  prStack_10c = prVar23;
  aStack_110.sbcset = aVar64.sbcset;
  aStack_114.sbcset = in_a3.sbcset;
  aStack_118.sbcset = aVar46.sbcset;
  pcStack_158 = pcVar68 + 0x205dc;
  aStack_11c.mbcset = (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x18820))->mbcset;
  aVar55 = (anon_union_4_5_a39f51ca_for_opr)(aVar45.mbcset)->char_classes;
  aVar46 = (anon_union_4_5_a39f51ca_for_opr)(aVar45.mbcset)->range_ends;
  aVar10.idx = re_node_set_init_1(&rStack_128,aVar46.idx);
  aVar64 = aVar55;
  if ((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) {
    aVar51.sbcset = (re_bitset_ptr_t)&rStack_128;
    aVar46 = aVar45;
    aVar50 = aVar55;
    aStack_13c.sbcset =
         (re_bitset_ptr_t)
         update_cur_sifted_state
                   (aVar60.sbcset,aVar45.sbcset,aVar55.idx,(re_node_set *)aVar51.mbcset);
    aVar10.idx = aStack_13c.idx;
    if (((re_dfa_t *)aStack_13c.sbcset == (re_dfa_t *)0x0) && (0 < aVar55.idx)) {
      aStack_150.idx = (Idx)aStack_13c;
      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);
      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);
      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);
      do {
        unaff_s8.idx = aVar64.idx * 4;
        if (*(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4) == 0) {
          aStack_150.sbcset =
               (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_150.mbcset)->mbchars)->raw_mbs + 1);
        }
        else {
          aStack_150.sbcset = aStack_13c.sbcset;
        }
        if (*(int *)(aVar60.idx + 0x78) < aStack_150.idx) {
          aVar46.sbcset = (re_bitset_ptr_t)0x0;
          aVar50.idx = unaff_s8.idx;
          (**(code **)(pcStack_158 + -0x7e40))();
          (**(code **)(pcStack_158 + -0x7db0))(rStack_128.elems);
          aVar10 = aStack_13c;
          goto LAB_00025e98;
        }
        rStack_128.nelem = 0;
        prVar66 = (*(re_dfastate_t ***)(aVar60.idx + 100) + aVar64.idx)[-1];
        aVar55.sbcset = (re_bitset_ptr_t)(aVar64.idx + -1);
        if ((prVar66 != (re_dfastate_t *)0x0) &&
           (aVar5 = (anon_union_4_5_a39f51ca_for_opr)
                    ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x54))->mbcset,
           0 < (prVar66->non_eps_nodes).nelem)) {
          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);
          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);
          aVar63 = aStack_13c;
          do {
            aVar46 = (anon_union_4_5_a39f51ca_for_opr)
                     ((anon_union_4_5_a39f51ca_for_opr *)
                     ((prVar66->non_eps_nodes).elems + aVar63.idx))->idx;
            iStack_14c = aVar46.idx * 8;
            aVar51.sbcset = aVar55.sbcset;
            if ((((Idx *)((int)((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs +
                         aVar46.idx * 2 * 4))[1] & 0x800U) == 0) {
LAB_00025d44:
              aVar50.sbcset = aVar55.sbcset;
              _Var38 = check_node_accept((re_match_context_t *)aVar60.mbcset,
                                         (re_token_t *)
                                         ((int)((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs +
                                         iStack_14c),aVar55.idx);
              if ((CONCAT31(extraout_var_00,_Var38) != 0) &&
                 (iVar6 = *(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs +
                                  aVar64.idx * 4), iVar6 != 0)) {
                iVar6 = (*pcStack_138)(iVar6 + 4,
                                       *(undefined4 *)
                                        (((re_node_set *)&(aVar5.mbcset)->char_classes)->alloc +
                                        aVar46.idx * 4));
                aVar59.idx = 1;
                if (iVar6 != 0) {
                  uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->
                           __wch;
                  goto LAB_00025c9c;
                }
              }
            }
            else {
              pwStack_148 = (aVar45.mbcset)->char_classes;
              prStack_134 = *(re_dfa_t **)(aVar60.idx + 0x54);
              aVar50 = aVar60;
              aVar59.sbcset =
                   (re_bitset_ptr_t)
                   check_node_accept_bytes(prStack_134,aVar46.idx,aVar60.sbcset,aVar55.idx);
              if (aVar59.idx < 1) {
                if ((re_dfa_t *)aVar59.sbcset == (re_dfa_t *)0x0) goto LAB_00025d44;
                uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch;
              }
              else {
                if (((int)aVar55.sbcset + (int)aVar59.sbcset <= (int)pwStack_148) &&
                   ((iVar6 = *(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs +
                                     (int)((int)aVar55.sbcset + (int)aVar59.sbcset) * 4), iVar6 == 0
                    || (iVar6 = (*pcStack_138)(iVar6 + 4,prStack_134->nexts[aVar46.idx]), iVar6 == 0
                       )))) goto LAB_00025d44;
                uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch;
              }
LAB_00025c9c:
              if (uVar11 != 0) {
                aVar50 = *(anon_union_4_5_a39f51ca_for_opr *)
                          (((re_node_set *)&(aVar5.mbcset)->char_classes)->alloc + aVar46.idx * 4);
                aVar51.sbcset = (int)aVar55.sbcset + aVar59.sbcset;
                aStack_160 = aVar46;
                aStack_15c.sbcset = aVar55.sbcset;
                iVar6 = (*pcStack_12c)(aVar60.sbcset,
                                       (anon_union_4_5_a39f51ca_for_opr *)(aVar45.idx + 0x10));
                if (iVar6 != 0) goto LAB_00025cfc;
              }
              iVar6 = (*pcStack_130)(&rStack_128);
              if (iVar6 == 0) {
                aVar10.idx = 0xc;
                goto LAB_00025e84;
              }
            }
LAB_00025cfc:
            aVar63.sbcset =
                 (re_bitset_ptr_t)((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 1);
          } while (aVar63.idx < (prVar66->non_eps_nodes).nelem);
        }
        aVar51.sbcset = (re_bitset_ptr_t)&rStack_128;
        aVar46 = aVar45;
        aVar50.sbcset = aVar55.sbcset;
        aVar10.sbcset =
             (re_bitset_ptr_t)
             update_cur_sifted_state
                       (aVar60.sbcset,aVar45.sbcset,aVar55.idx,(re_node_set *)aVar51.mbcset);
      } while (((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) &&
              (aVar64.sbcset = aVar55.sbcset, aVar10.sbcset = aVar55.sbcset,
              (re_dfa_t *)aVar55.sbcset != (re_dfa_t *)0x0));
    }
LAB_00025e84:
    (**(code **)(pcStack_158 + -0x7db0))(rStack_128.elems);
    aVar64 = aVar55;
  }
LAB_00025e98:
  if ((re_dfa_t *)aStack_11c.sbcset == (re_dfa_t *)**(undefined4 **)(pcStack_158 + -0x7dbc)) {
    return (re_dfastate_t *)aVar10.sbcset;
  }
  pcVar68 = *(code **)(pcStack_158 + -0x7ddc);
  pcVar70 = re_compile_internal;
  aVar57 = aStack_11c;
  (*pcVar68)();
  aStack_19c = (anon_union_4_5_a39f51ca_for_opr)
               (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x1842c))->mbcset;
  aStack_204.sbcset = (re_bitset_ptr_t)0x0;
  bVar1 = *(byte *)&((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc;
  (aVar57.mbcset)->char_classes = (wctype_t *)aVar51;
  (aVar57.mbcset)->range_ends = (wchar_t *)0x0;
  (aVar57.mbcset)->ncoll_syms = 0;
  *(byte *)&((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc = bVar1 & 9;
  aVar55.mbcset = (re_charset_t *)((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs;
  aVar52 = aVar51;
  aStack_198 = aVar64;
  aStack_194 = aVar60;
  aStack_190 = aVar45;
  aStack_18c = aVar10;
  aStack_188 = aVar59;
  aStack_184 = aVar5;
  aStack_180 = aVar63;
  prStack_17c = prVar66;
  aStack_178 = unaff_s8;
  pcStack_174 = pcVar70;
  if ((uint)((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc < 0x88) {
    aVar60.idx = 0x88;
    aVar59 = aVar50;
    aVar55.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183d0))(aVar55.sbcset);
    if ((re_dfa_t *)aVar55.sbcset != (re_dfa_t *)0x0) {
      ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0x88;
      ((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs = (uchar *)aVar55;
      goto LAB_00025f80;
    }
    aVar64.idx = 0xc;
  }
  else {
LAB_00025f80:
    (aVar57.mbcset)->range_ends = (wchar_t *)0x88;
    aVar59.idx = 0x88;
    aVar60.sbcset = (re_bitset_ptr_t)0x0;
    (**(code **)(pcVar68 + 0x183a8))(aVar55.sbcset);
    *(int *)(aVar55.idx + 0x40) = 0x1f;
    pbVar14 = (byte *)((int)&((re_string_t *)&(aVar50.mbcset)->mbchars)->raw_mbs + 1);
    if (aVar50.sbcset < (re_dfa_t *)0xaaaaaaa) {
      (aVar55.mbcset)->range_starts = (wchar_t *)pbVar14;
      bVar12 = (**(code **)(pcVar68 + 0x183cc))((int)pbVar14 * 8);
      *aVar55.sbcset = bVar12;
      if ((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) {
        aVar10.idx = 1;
      }
      else {
        aVar10.idx = 1;
        do {
          aVar10.ctx_type = aVar10.ctx_type << 1;
        } while (aVar10.sbcset <= aVar50.sbcset);
      }
      aVar60 = aVar10;
      prVar13 = (re_state_table_entry *)(**(code **)(pcVar68 + 0x18330))(0xc);
      (aVar55.mbcset)->nranges = (Idx)prVar13;
      aVar10.sbcset = (re_bitset_ptr_t)(aVar10.idx + -1);
      ((anon_union_4_5_a39f51ca_for_opr *)(aVar55.idx + 0x44))->sbcset = (re_bitset_ptr_t)aVar10;
      iVar6 = (**(code **)(pcVar68 + 0x183f0))();
      *(int *)(aVar55.idx + 0x5c) = iVar6;
      pbVar14 = (byte *)(**(code **)(pcVar68 + 0x1837c))(0xe);
      if ((((*pbVar14 & 0xdf) == 0x55) && ((pbVar14[1] & 0xdf) == 0x54)) &&
         (aVar60.idx = 4, (pbVar14[2] & 0xdf) == 0x46)) {
        iVar6 = 3;
        if (pbVar14[3] == 0x2d) {
          iVar6 = 4;
        }
        aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x30bc);
        iVar6 = (**(code **)(pcVar68 + 0x18458))(pbVar14 + iVar6);
        if (iVar6 == 0) {
          *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xdf | 0x20;
        }
      }
      *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xef;
      if (1 < *(int *)(aVar55.idx + 0x5c)) {
        if ((*(byte *)(aVar55.idx + 0x58) & 0x20) == 0) {
          aVar60.idx = 1;
          pbVar15 = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x18330))(0x20);
          *(re_bitset_ptr_t *)(aVar55.idx + 0x3c) = pbVar15;
          if (pbVar15 == (re_bitset_ptr_t)0x0) goto LAB_00026e64;
          aVar5.sbcset = (re_bitset_ptr_t)0x0;
          unaff_s8.idx = 1;
          do {
            aVar10.ctx_type = aVar5.ctx_type << 3;
            uVar11 = 0;
            do {
              prVar27 = (re_dfa_t *)(**(code **)(pcVar68 + 0x18398))(aVar10.sbcset);
              if (prVar27 != (re_dfa_t *)0xffffffff) {
                prVar41 = (re_context_type *)
                          ((int)*(re_bitset_ptr_t *)(aVar55.idx + 0x3c) + (int)aVar5.sbcset);
                aVar60.ctx_type = *prVar41;
                *prVar41 = aVar60.ctx_type | 1 << (uVar11 & 0x1f);
              }
              if (((aVar10.ctx_type & 0xffffff80) == 0) && (prVar27 != (re_dfa_t *)aVar10.sbcset)) {
                *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xef | 0x10;
              }
              uVar11 = uVar11 + 1;
              aVar10.sbcset =
                   (re_bitset_ptr_t)((int)&((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs + 1);
            } while (uVar11 != 0x20);
            aVar5.sbcset = aVar5.sbcset + 4;
            aVar63.idx = 0x20;
          } while (aVar5.sbcset != (re_bitset_ptr_t)0x20);
        }
        else {
          *(re_bitset_ptr_t *)(aVar55.idx + 0x3c) =
               (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x338c);
        }
      }
      if ((*aVar55.sbcset != 0) &&
         (aVar10 = aVar50,
         (re_state_table_entry *)(aVar55.mbcset)->nranges != (re_state_table_entry *)0x0)) {
        aStack_204.sbcset = (re_bitset_ptr_t)0x0;
        aVar63 = (anon_union_4_5_a39f51ca_for_opr)
                 ((anon_union_4_2_91654ee9_for___value *)&(aVar57.mbcset)->nmbchars)->__wch;
        aVar5.ctx_type = aVar51.ctx_type & 0x400000;
        bVar39 = (re_dfa_t *)aVar5.sbcset != (re_dfa_t *)0x0;
        unaff_s8.idx._0_3_ = 0;
        unaff_s8.idx._3_1_ = bVar39;
        aVar59.idx = 0x4c;
        aVar60.sbcset = (re_bitset_ptr_t)0x0;
        (**(code **)(pcVar68 + 0x183a8))(aaStack_1ec);
        if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {
          unaff_s8.idx = 1;
        }
        cStack_1a5 = (char)unaff_s8.idx;
        iStack_1a0 = *(int *)(aVar55.idx + 0x5c);
        bStack_1a7 = (byte)((uint)(*(int *)(aVar55.idx + 0x58) << 2) >> 0x1f);
        bStack_1a6 = (byte)((uint)(*(int *)(aVar55.idx + 0x58) << 3) >> 0x1f);
        aStack_1f0 = aVar46;
        aStack_1c4 = aVar50;
        aStack_1c0 = aVar50;
        aStack_1bc = aVar50;
        aStack_1b8 = aVar50;
        aStack_1b0 = aVar63;
        uStack_1a8 = bVar39;
        if (0 < aVar50.idx) {
          aVar60.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);
          aVar45.idx = re_string_realloc_buffers((re_string_t *)&aStack_1f0,aVar60.idx);
          aVar64 = aVar50;
          if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==
              (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00026118;
          goto LAB_000261b4;
        }
LAB_00026118:
        if (cStack_1a5 != '\0') {
          aVar46 = aaStack_1ec[0];
        }
        aaStack_1ec[0] = aVar46;
        if ((re_dfa_t *)aVar5.sbcset == (re_dfa_t *)0x0) {
          if (*(int *)(aVar55.idx + 0x5c) < 2) {
            if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {
              re_string_translate_buffer((re_string_t *)&aStack_1f0);
            }
          }
          else {
            build_wcs_buffer((re_string_t *)&aStack_1f0);
          }
        }
        else {
          if (1 < *(int *)(aVar55.idx + 0x5c)) {
            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x4f58);
            aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x697c);
            do {
              aVar45.idx = build_wcs_upper_buffer((re_string_t *)&aStack_1f0);
              aVar64.sbcset = (re_bitset_ptr_t)&aStack_1f0;
              if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset !=
                  (anon_union_4_5_a39f51ca_for_opr *)0x0) break;
              if ((aVar50.idx <= iStack_1d0) ||
                 (aVar60.ctx_type = iStack_1cc << 1,
                 iStack_1d4 + *(int *)(aVar55.idx + 0x5c) < iStack_1cc)) goto LAB_000263f8;
              aVar45.sbcset = (re_bitset_ptr_t)(*(code *)aVar63)(&aStack_1f0);
            } while ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==
                     (anon_union_4_5_a39f51ca_for_opr *)0x0);
            goto LAB_000261b4;
          }
          build_upper_buffer((re_string_t *)&aStack_1f0);
        }
LAB_000263f8:
        aStack_204.sbcset = (re_bitset_ptr_t)0x0;
        (aVar57.mbcset)->ncoll_syms = 0;
        aVar63.mbcset = (re_charset_t *)((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs;
        ((anon_union_4_5_a39f51ca_for_opr *)(aVar63.idx + 0x80))->ctx_type = (re_context_type)aVar51
        ;
        aVar64.sbcset = (re_bitset_ptr_t)&aStack_1f0;
        fetch_token((re_token_t *)&rStack_1fc,(re_string_t *)aVar64.mbcset,
                    aVar51.ctx_type | 0x800000);
        aVar60 = aVar57;
        aVar10.sbcset =
             (re_bitset_ptr_t)
             parse_reg_exp((re_string_t *)aVar64.mbcset,aVar57.sbcset,(re_token_t *)&rStack_1fc,
                           aVar51.ctx_type,0,&aStack_204.idx);
        aVar52.idx = 2;
        if ((anon_union_4_5_a39f51ca_for_opr *)aStack_204.sbcset ==
            (anon_union_4_5_a39f51ca_for_opr *)0x0) {
          aVar59.sbcset = (re_bitset_ptr_t)0x0;
          aVar60.sbcset = (re_bitset_ptr_t)0x0;
          aVar50.mbcset =
               (re_charset_t *)
               create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);
          aVar64.mbcset = aVar50.mbcset;
          if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {
LAB_000264d8:
            aVar52.idx = 0x10;
            aVar60.mbcset = aVar10.mbcset;
            aVar59 = aVar50;
            aVar64.sbcset =
                 (re_bitset_ptr_t)
                 create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)aVar10.mbcset,aVar50.sbcset,
                             CONCAT);
          }
          if (((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) ||
             (pcVar70 = *(code **)(pcVar68 + 0x183cc), (re_dfa_t *)aVar64.sbcset == (re_dfa_t *)0x0)
             ) {
            aStack_204.idx = 0xc;
            goto LAB_0002671c;
          }
          ((anon_union_4_5_a39f51ca_for_opr *)(aVar55.idx + 0x34))->mbcset = (re_charset_t *)aVar64;
          aVar50.mbcset = (re_charset_t *)*aVar57.sbcset;
          iVar36 = ((re_node_set *)&(aVar50.mbcset)->range_starts)->alloc;
          iVar6 = iVar36 << 2;
          aVar51.sbcset = (re_bitset_ptr_t)(*pcVar70)(iVar6);
          ((re_node_set *)&(aVar50.mbcset)->char_classes)->alloc = (Idx)aVar51;
          aVar63.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183cc))(iVar6);
          ((anon_union_4_5_a39f51ca_for_opr *)(aVar50.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar63
          ;
          aVar10.idx = iVar36 * 0xc;
          aVar46.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183cc))(aVar10.sbcset);
          ((anon_union_4_2_91654ee9_for___value *)&(aVar50.mbcset)->nmbchars)->__wch = (uint)aVar46;
          iVar6 = (**(code **)(pcVar68 + 0x183cc))(aVar10.sbcset);
          ((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc = iVar6;
          aVar64.mbcset = aVar50.mbcset;
          if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) {
            aVar45.idx = 0xc;
          }
          else if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)0x0) {
            aVar45.idx = 0xc;
          }
          else if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
                   (anon_union_4_5_a39f51ca_for_opr *)0x0) {
            aVar45.idx = 0xc;
          }
          else if (iVar6 == 0) {
            aVar45.idx = 0xc;
          }
          else {
            pprVar16 = (re_sub_match_top_t **)
                       (**(code **)(pcVar68 + 0x183cc))((int)(aVar57.mbcset)->ncoll_syms << 2);
            *(re_sub_match_top_t ***)(aVar50.idx + 0x84) = pprVar16;
            if (pprVar16 != (re_sub_match_top_t **)0x0) {
              prVar17 = (re_sub_match_top_t *)0x0;
              if ((re_node_set *)(aVar57.mbcset)->ncoll_syms != (re_node_set *)0x0) {
                do {
                  (*(re_sub_match_top_t ***)(aVar50.idx + 0x84))[(int)prVar17] = prVar17;
                  prVar17 = (re_sub_match_top_t *)((int)&prVar17->str_idx + 1);
                } while (prVar17 < (re_sub_match_top_t *)(aVar57.mbcset)->ncoll_syms);
              }
              preorder(*(bin_tree_t **)(aVar50.idx + 0x34),
                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)
                       (*(int *)(pcVar68 + 0x18300) + -0x75c0),aVar50.sbcset);
              prVar17 = (re_sub_match_top_t *)(aVar57.mbcset)->ncoll_syms;
              if (prVar17 == (re_sub_match_top_t *)0x0) {
LAB_0002672c:
                (**(code **)(pcVar68 + 0x18438))(*(re_sub_match_top_t ***)(aVar50.idx + 0x84));
                *(re_sub_match_top_t ***)(aVar50.idx + 0x84) = (re_sub_match_top_t **)0x0;
              }
              else {
                pprVar16 = *(re_sub_match_top_t ***)(aVar50.idx + 0x84);
                if (*pprVar16 == (re_sub_match_top_t *)0x0) {
                  prVar18 = (re_sub_match_top_t *)0x0;
                  do {
                    pprVar16 = pprVar16 + 1;
                    prVar18 = (re_sub_match_top_t *)((int)&prVar18->str_idx + 1);
                    if (prVar17 == prVar18) {
                      if (prVar18 == prVar17) goto LAB_0002672c;
                      break;
                    }
                  } while (*pprVar16 == prVar18);
                }
              }
            }
            aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x6304);
            aVar45.idx = postorder(*(bin_tree_t **)(aVar50.idx + 0x34),
                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,
                                   aVar57.sbcset);
            aVar59.mbcset = aVar50.mbcset;
            if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==
                (anon_union_4_5_a39f51ca_for_opr *)0x0) {
              aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x3280);
              aVar45.idx = postorder(*(bin_tree_t **)(aVar50.idx + 0x34),
                                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,
                                     aVar50.sbcset);
              if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==
                  (anon_union_4_5_a39f51ca_for_opr *)0x0) {
                aVar10.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x7658);
                preorder(*(bin_tree_t **)(aVar50.idx + 0x34),
                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)
                         (*(int *)(pcVar68 + 0x18300) + -0x74f4),aVar50.sbcset);
                aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x1cb0);
                aVar46.idx = preorder(*(bin_tree_t **)(aVar50.idx + 0x34),
                                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,
                                      aVar50.sbcset);
                aVar45.idx = aVar46.idx;
                if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
                    (anon_union_4_5_a39f51ca_for_opr *)0x0) {
                  aVar63.sbcset = (re_bitset_ptr_t)0x0;
                  unaff_s8.sbcset = (re_bitset_ptr_t)&rStack_1fc;
                  iVar6 = *(int *)(pcVar68 + 0x18300);
                  aVar10.sbcset = (re_bitset_ptr_t)0x0;
LAB_0002676c:
                  if ((re_dfa_t *)(aVar50.mbcset)->range_ends != (re_dfa_t *)aVar10.sbcset) {
LAB_00026778:
                    aVar51.idx = aVar10.idx * 0xc;
                    aVar52.idx = 1;
                    if (*(int *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc +
                                 aVar10.idx * 0xc + 4) == 0) {
                      aVar60.mbcset = aVar50.mbcset;
                      aVar59 = aVar10;
                      aVar45.sbcset = (re_bitset_ptr_t)(*(code *)(iVar6 + -0x2cb8))(unaff_s8.sbcset)
                      ;
                      if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset !=
                          (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_000261b4;
                      aVar51.sbcset =
                           (re_bitset_ptr_t)
                           (((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc + aVar10.idx * 0xc)
                      ;
                      if (((re_node_set *)&(aVar51.mbcset)->range_starts)->alloc == 0) {
                        (**(code **)(pcVar68 + 0x18438))(rStack_1fc.elems);
                        aVar63.idx = 1;
                      }
                    }
                    aVar10.sbcset =
                         (re_bitset_ptr_t)
                         ((int)&((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs + 1);
                    goto LAB_0002676c;
                  }
                  if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {
                    aVar63.sbcset = (re_bitset_ptr_t)0x0;
                    aVar10.sbcset = (re_bitset_ptr_t)0x0;
                    goto LAB_00026778;
                  }
                  if ((((((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)
                      && ((re_node_set *)(aVar57.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&
                     ((char)*(byte *)(aVar50.idx + 0x58) < '\0')) {
                    aVar10 = (anon_union_4_5_a39f51ca_for_opr)(aVar50.mbcset)->range_ends;
                  }
                  else {
                    if (*(Idx *)(aVar50.idx + 0x4c) == 0) goto LAB_00026918;
                    aVar10 = (anon_union_4_5_a39f51ca_for_opr)(aVar50.mbcset)->range_ends;
                  }
                  iVar6 = (**(code **)(pcVar68 + 0x183cc))(aVar10.idx * 0xc);
                  ((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->alloc = iVar6;
                  if (iVar6 == 0) {
                    aVar45.idx = 0xc;
                    goto LAB_000261b4;
                  }
                  if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {
                    iVar6 = 0;
                    uVar11 = 0;
                    do {
                      puVar19 = (undefined1 *)
                                (((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->alloc + iVar6);
                      *puVar19 = 0;
                      puVar19[1] = 0;
                      puVar19[2] = 0;
                      puVar19[3] = 0;
                      puVar19[4] = 0;
                      puVar19[5] = 0;
                      puVar19[6] = 0;
                      puVar19[7] = 0;
                      puVar19[8] = 0;
                      puVar19[9] = 0;
                      puVar19[10] = 0;
                      puVar19[0xb] = 0;
                      uVar11 = uVar11 + 1;
                      iVar6 = iVar6 + 0xc;
                    } while (uVar11 < (aVar50.mbcset)->range_ends);
                    iVar6 = *(int *)(pcVar68 + 0x18300);
                    if ((wint_t *)(aVar50.mbcset)->range_ends != (wint_t *)0x0) {
                      unaff_s8.sbcset = (re_bitset_ptr_t)0x0;
                      aStack_210.sbcset = (re_bitset_ptr_t)0x0;
                      do {
                        pbVar14 = (byte *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc +
                                          (int)unaff_s8.sbcset);
                        aVar10 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((anon_union_4_5_a39f51ca_for_opr *)(pbVar14 + 8))->sbcset;
                        if (0 < *(int *)(pbVar14 + 4)) {
                          aVar51.sbcset = (re_bitset_ptr_t)0x0;
                          do {
                            aVar60 = aStack_210;
                            iVar36 = (*(code *)(iVar6 + -0x6878))
                                               (((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->
                                                alloc + (int)*aVar10.sbcset * 0xc);
                            aVar45.idx = 0xc;
                            if (iVar36 == 0) goto LAB_000261b4;
                            aVar51.sbcset =
                                 (re_bitset_ptr_t)
                                 ((int)&((re_string_t *)&(aVar51.mbcset)->mbchars)->raw_mbs + 1);
                            aVar10.sbcset = (re_bitset_ptr_t)&(aVar10.mbcset)->range_starts;
                          } while (aVar51.idx <
                                   *(int *)((byte *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->
                                                     alloc + (int)unaff_s8.sbcset) + 4));
                        }
                        aStack_210.sbcset =
                             (re_bitset_ptr_t)
                             ((int)&((re_string_t *)&(aStack_210.mbcset)->mbchars)->raw_mbs + 1);
                        unaff_s8.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->char_classes;
                      } while (aStack_210.sbcset < (re_dfa_t *)(aVar50.mbcset)->range_ends);
                    }
                  }
LAB_00026918:
                  aStack_204.sbcset = (re_bitset_ptr_t)0x0;
                  if ((((*(byte *)(aVar55.idx + 0x58) & 0x20) != 0) &&
                      ((re_dfa_t *)aVar5.sbcset == (re_dfa_t *)0x0)) &&
                     (((anon_union_4_2_91654ee9_for___value *)&(aVar57.mbcset)->nmbchars)->__wch ==
                      0)) {
                    aVar60 = aVar63;
                    if ((aVar55.mbcset)->range_ends != (wchar_t *)0x0) {
                      aVar59.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x3438);
                      if (*(byte *)(*aVar55.sbcset + 4) < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00026a88. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                        prVar7 = (re_dfastate_t *)
                                 (*(code *)((int)aVar59.sbcset[*(byte *)(*aVar55.sbcset + 4)] +
                                           (int)(pcVar68 + 0x201e8)))();
                        return prVar7;
                      }
                      (**(code **)(pcVar68 + 0x18344))(0);
                      if ((re_dfa_t *)aVar60.sbcset != (re_dfa_t *)0x0) {
                        aVar59.idx = 7;
                        aVar46.sbcset = (re_bitset_ptr_t)0x0;
                        do {
                          prVar20 = (re_token_t *)(aVar55.mbcset)->mbchars + aVar46.idx;
                          if (prVar20->field_0x4 == '\x01') {
                            if ((char)(prVar20->opr).c < '\0') {
                              *(uint *)&prVar20->field_0x4 =
                                   *(uint *)&prVar20->field_0x4 & 0xfffffbff;
                            }
                          }
                          else if (prVar20->field_0x4 == '\x05') {
                            prVar20->field_0x4 = 7;
                          }
                          aVar46.sbcset =
                               (re_bitset_ptr_t)
                               ((int)&((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + 1);
                        } while (aVar46.sbcset <
                                 (anon_union_4_5_a39f51ca_for_opr *)(aVar55.mbcset)->range_ends);
                      }
                    }
                    *(int *)(aVar55.idx + 0x5c) = 1;
                    if (0 < *(Idx *)(aVar55.idx + 0x4c)) {
                      aVar60.idx = 1;
                    }
                    *(byte *)(aVar55.idx + 0x58) =
                         *(byte *)(aVar55.idx + 0x58) & 0x9f | (byte)((aVar60.ctx_type & 1) << 6);
                  }
                  iVar6 = (*(bin_tree_t **)(aVar55.idx + 0x34))->first->node_idx;
                  *(int *)(aVar55.idx + 0x48) = iVar6;
                  aVar60.sbcset =
                       (re_bitset_ptr_t)((re_node_set *)(aVar55.mbcset)->ncoll_syms + iVar6);
                  aVar64.idx = re_node_set_init_copy(&rStack_1fc,(re_node_set *)aVar60.mbcset);
                  aVar10.idx = aVar64.idx;
                  aStack_200.idx = aVar64.idx;
                  if ((re_dfa_t *)aVar64.sbcset == (re_dfa_t *)0x0) {
                    if ((0 < *(Idx *)(aVar55.idx + 0x4c)) &&
                       (aVar50.sbcset = (re_bitset_ptr_t)0x0, 0 < rStack_1fc.nelem)) {
                      aVar5.sbcset = (re_bitset_ptr_t)&rStack_1fc;
                      aVar51.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x7800);
                      aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x5750);
                      aVar50.sbcset = (re_bitset_ptr_t)0x0;
                      do {
                        aVar52 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((anon_union_4_5_a39f51ca_for_opr *)(rStack_1fc.elems + aVar50.idx)
                                 )->idx;
                        aVar59.sbcset =
                             (re_bitset_ptr_t)((re_token_t *)(aVar55.mbcset)->mbchars + aVar52.idx);
                        if (*(char *)&((re_node_set *)&(aVar59.mbcset)->range_starts)->alloc ==
                            '\x04') {
                          iVar6 = 0;
                          piVar21 = rStack_1fc.elems;
                          if (rStack_1fc.nelem < 1) {
LAB_00026bb4:
                            if (iVar6 != rStack_1fc.nelem) {
                              aVar46 = (anon_union_4_5_a39f51ca_for_opr)
                                       ((anon_union_4_5_a39f51ca_for_opr *)
                                       ((re_node_set *)(aVar55.mbcset)->nmbchars)[aVar52.idx].elems)
                                       ->idx;
                              iVar6 = (*(code *)aVar51)(aVar5.sbcset,aVar46.sbcset);
                              if (iVar6 == 0) {
                                aVar60.sbcset =
                                     (re_bitset_ptr_t)
                                     ((re_node_set *)(aVar55.mbcset)->ncoll_syms + aVar46.idx);
                                aVar50.sbcset = (re_bitset_ptr_t)(*(code *)aVar63)(aVar5.sbcset);
                                aVar10.sbcset = aVar50.sbcset;
                                if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) goto LAB_00026ce0;
                              }
                            }
                          }
                          else {
                            do {
                              prVar20 = (re_token_t *)(aVar55.mbcset)->mbchars + *piVar21;
                              if ((prVar20->field_0x4 == '\t') &&
                                 ((prVar20->opr).sbcset == (re_bitset_ptr_t)*aVar59.sbcset))
                              goto LAB_00026bb4;
                              iVar6 = iVar6 + 1;
                              piVar21 = piVar21 + 1;
                            } while (rStack_1fc.nelem != iVar6);
                          }
                        }
                        aVar50.sbcset =
                             (re_bitset_ptr_t)
                             ((int)&((re_string_t *)&(aVar50.mbcset)->mbchars)->raw_mbs + 1);
                      } while (aVar50.idx < rStack_1fc.nelem);
                    }
                    aVar52.sbcset = (re_bitset_ptr_t)0x0;
                    aVar59.sbcset = (re_bitset_ptr_t)&rStack_1fc;
                    aVar60 = aVar55;
                    prVar7 = re_acquire_state_context
                                       (&aStack_200.idx,(re_dfa_t *)aVar55.mbcset,
                                        (re_node_set *)aVar59.mbcset,0);
                    (aVar55.mbcset)->nchar_classes = (Idx)prVar7;
                    aVar10 = aStack_200;
                    if (prVar7 != (re_dfastate_t *)0x0) {
                      aVar52.idx = 1;
                      if ((prVar7->field_0x34 & 1) == 0) {
                        *(re_dfastate_t **)(aVar55.idx + 0x30) = prVar7;
                        *(re_dfastate_t **)(aVar55.idx + 0x2c) = prVar7;
                        *(re_dfastate_t **)(aVar55.idx + 0x28) = prVar7;
                      }
                      else {
                        aVar5.sbcset = (re_bitset_ptr_t)&rStack_1fc;
                        aVar51.sbcset = (re_bitset_ptr_t)&aStack_200;
                        aVar50.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x2868);
                        prVar7 = re_acquire_state_context
                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset
                                            ,(re_node_set *)aVar5.mbcset,1);
                        *(re_dfastate_t **)(aVar55.idx + 0x28) = prVar7;
                        prVar7 = re_acquire_state_context
                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset
                                            ,(re_node_set *)aVar5.mbcset,2);
                        *(re_dfastate_t **)(aVar55.idx + 0x2c) = prVar7;
                        aVar52.idx = 6;
                        aVar60 = aVar55;
                        aVar59.sbcset = aVar5.sbcset;
                        prVar7 = re_acquire_state_context
                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset
                                            ,(re_node_set *)aVar5.mbcset,6);
                        *(re_dfastate_t **)(aVar55.idx + 0x30) = prVar7;
                        aVar10 = aStack_200;
                        if (((*(re_dfastate_t **)(aVar55.idx + 0x28) == (re_dfastate_t *)0x0) ||
                            (*(re_dfastate_t **)(aVar55.idx + 0x2c) == (re_dfastate_t *)0x0)) ||
                           (prVar7 == (re_dfastate_t *)0x0)) goto LAB_00026ce0;
                      }
                      (**(code **)(pcVar68 + 0x18438))(rStack_1fc.elems);
                      aVar10.idx = aVar64.idx;
                    }
                  }
LAB_00026ce0:
                  aStack_204 = aVar10;
                  free_workarea_compile((regex_t *)aVar57.mbcset);
                  re_string_destruct((re_string_t *)&aStack_1f0);
                  aVar64 = aStack_204;
                  if ((anon_union_4_5_a39f51ca_for_opr *)aStack_204.sbcset !=
                      (anon_union_4_5_a39f51ca_for_opr *)0x0) {
                    free_dfa_content((re_dfa_t *)aVar55.mbcset);
                    *aVar57.sbcset = 0;
                    ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;
                    aVar64 = aStack_204;
                  }
                  goto LAB_00026d24;
                }
              }
            }
          }
        }
        else {
          aVar59.sbcset = (re_bitset_ptr_t)0x0;
          if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {
            aVar50.mbcset =
                 (re_charset_t *)
                 create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE
                            );
            goto LAB_000264d8;
          }
LAB_0002671c:
          *(bin_tree_t **)(aVar55.idx + 0x34) = (bin_tree_t *)0x0;
          aVar45 = aStack_204;
        }
LAB_000261b4:
        aStack_204 = aVar45;
        aVar50 = aVar64;
        free_workarea_compile((regex_t *)aVar57.mbcset);
        re_string_destruct((re_string_t *)&aStack_1f0);
        free_dfa_content((re_dfa_t *)aVar55.mbcset);
        *aVar57.sbcset = 0;
        ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;
        aVar64 = aStack_204;
        goto LAB_00026d24;
      }
    }
LAB_00026e64:
    aStack_204.idx = 0xc;
    free_dfa_content((re_dfa_t *)aVar55.mbcset);
    *aVar57.sbcset = 0;
    ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;
    aVar64 = aStack_204;
  }
LAB_00026d24:
  if ((re_dfa_t *)aStack_19c.sbcset == (re_dfa_t *)**(undefined4 **)(pcVar68 + 0x1842c)) {
    return (re_dfastate_t *)aVar64.sbcset;
  }
  pcVar68 = *(code **)(pcVar68 + 0x1840c);
  pcVar70 = build_trtable;
  aVar64 = aStack_19c;
  (*pcVar68)();
  aStack_300.sbcset = (re_bitset_ptr_t)(pcVar68 + 0x1f234);
  aStack_25c = (anon_union_4_5_a39f51ca_for_opr)
               (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x17478))->sbcset;
  aVar45 = aVar60;
  aStack_258 = aVar55;
  aStack_254 = aVar57;
  aStack_250 = aVar50;
  aStack_24c = aVar10;
  aStack_248 = aVar51;
  aStack_244 = aVar5;
  aStack_240 = aVar63;
  aStack_23c = aVar46;
  aStack_238 = unaff_s8;
  pcStack_234 = pcVar70;
  aStack_2ec.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x17418))(0x2c00);
  if ((re_dfa_t *)aStack_2ec.sbcset == (re_dfa_t *)0x0) {
    prVar7 = (re_dfastate_t *)0x0;
  }
  else {
    ppprStack_2e0 = (re_dfastate_t ***)(aStack_2ec.idx + 0xc00);
    *(re_dfastate_t **)(aVar60.idx + 0x2c) = (re_dfastate_t *)0x0;
    *(re_dfastate_t **)(aVar60.idx + 0x30) = (re_dfastate_t *)0x0;
    aStack_2e4.sbcset = aStack_2ec.sbcset;
    bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);
    aVar63 = aStack_300;
    if ((int)(aVar60.mbcset)->range_ends < 1) {
      aVar50.sbcset = (re_bitset_ptr_t)0x0;
    }
    else {
      aVar50.sbcset = (re_bitset_ptr_t)0x0;
      aStack_2f4.sbcset = (re_bitset_ptr_t)0x0;
      pprStack_2d8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1886;
      pprStack_2e8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1867;
      pprStack_2dc = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x14a1;
      do {
        aStack_2f0.idx = (Idx)(aStack_2f4.idx * 4);
        aVar10.sbcset =
             (re_bitset_ptr_t)
             ((int)((re_string_t *)&(aVar64.mbcset)->mbchars)->raw_mbs +
             *(int *)(((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc + aStack_2f4.idx * 4) *
             2 * 4);
        aVar46.idx._0_3_ = 0;
        aVar46.idx._3_1_ = *(byte *)&((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc;
        aVar55.idx = (((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc << 8) >> 0x16;
        if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
            (anon_union_4_5_a39f51ca_for_opr *)0x1) {
          bitset_set((bitset_word_t *)&aaStack_2bc[0].c,(uint)*(byte *)aVar10.sbcset);
          aVar63 = aStack_300;
LAB_00026f88:
          if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) goto LAB_00027078;
          if ((aVar55.ctx_type & LINE_LAST) != 0) {
            aVar57.sbcset = (re_bitset_ptr_t)aaStack_2bc;
            aVar51._3_1_ = bitset_contain(aVar57.sbcset,10);
            aVar51.idx._0_3_ = extraout_var_01;
            bitset_empty(aVar57.sbcset);
            aVar63 = aStack_300;
            if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) goto LAB_00027478;
            bitset_set((bitset_word_t *)&aaStack_2bc[0].c,10);
            aVar63 = aStack_300;
          }
          if ((aVar55.ctx_type & BUF_LAST) == 0) {
            if ((aVar55.ctx_type & 4) == 0) {
LAB_0002700c:
              aVar55.ctx_type = aVar55.ctx_type & 8;
              if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) {
LAB_00027078:
                if (aVar50.idx < 1) {
                  aVar57.sbcset = (re_bitset_ptr_t)0x0;
                }
                else {
                  aVar55.sbcset = (re_bitset_ptr_t)(aStack_2ec.idx + 0xc00);
                  aVar57.sbcset = (re_bitset_ptr_t)0x0;
                  aStack_2f8 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar63.idx + -0x7ee8);
                  aVar5 = aStack_2ec;
                  do {
                    if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset !=
                         (anon_union_4_5_a39f51ca_for_opr *)0x1) ||
                       (_Var38 = bitset_contain(aVar55.sbcset,(uint)*(byte *)aVar10.sbcset),
                       aVar63 = aStack_300, CONCAT31(extraout_var_02,_Var38) != 0)) {
                      paVar48 = aaStack_2bc;
                      rVar43 = 0;
                      paVar42 = paVar48;
                      aVar59 = aVar55;
                      aVar52 = (anon_union_4_5_a39f51ca_for_opr)&aStack_29c;
                      do {
                        rVar22 = paVar42->ctx_type;
                        pIVar54 = (Idx *)*aVar59.sbcset;
                        *aVar52.sbcset = rVar22 & (uint)pIVar54;
                        rVar43 = rVar43 | rVar22 & (uint)pIVar54;
                        paVar42 = paVar42 + 1;
                        aVar59.sbcset = (re_bitset_ptr_t)&(aVar59.mbcset)->range_starts;
                        aVar52.sbcset = aVar52.sbcset + 4;
                      } while (paVar42 != &aStack_29c);
                      if (rVar43 != 0) {
                        aVar59.sbcset = (re_bitset_ptr_t)aaStack_27c;
                        aVar51.sbcset = (re_bitset_ptr_t)0x0;
                        rVar43 = 0;
                        aVar63 = aVar55;
                        do {
                          aVar52.ctx_type = paVar48->ctx_type;
                          pIVar54 = (Idx *)*aVar63.sbcset;
                          rVar22 = ~aVar52.ctx_type & (uint)pIVar54;
                          *aVar59.sbcset = rVar22;
                          rVar43 = rVar43 | rVar22;
                          rVar22 = ~(uint)pIVar54 & aVar52.ctx_type;
                          paVar48->ctx_type = rVar22;
                          aVar51.ctx_type = aVar51.ctx_type | rVar22;
                          paVar48 = paVar48 + 1;
                          aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;
                          aVar59.sbcset = aVar59.sbcset + 4;
                        } while (aVar63.sbcset != (re_bitset_ptr_t)&(aVar55.mbcset)->nranges);
                        if (rVar43 != 0) {
                          paVar42 = (anon_union_4_5_a39f51ca_for_opr *)
                                    (ppprStack_2e0 + aVar50.idx * 8);
                          *paVar42 = aaStack_27c[0];
                          paVar42[1] = aaStack_27c[1];
                          paVar42[2] = aaStack_27c[2];
                          paVar42[3] = aaStack_27c[3];
                          paVar42[4] = aStack_26c;
                          paVar42[5] = aStack_268;
                          paVar42[6] = aStack_264;
                          paVar42[7] = aStack_260;
                          *aVar55.sbcset = (bitset_word_t)aStack_29c;
                          (aVar55.mbcset)->range_starts = pwStack_298;
                          (aVar55.mbcset)->range_ends = pIStack_294;
                          ((re_node_set *)&(aVar55.mbcset)->char_classes)->alloc = IStack_290;
                          *(Idx **)(aVar55.idx + 0x10) = pIStack_28c;
                          (aVar55.mbcset)->nmbchars = (Idx)prStack_288;
                          (aVar55.mbcset)->ncoll_syms = (Idx)prStack_284;
                          (aVar55.mbcset)->nequiv_classes = (Idx)prStack_280;
                          iVar6 = (*(code *)pprStack_2dc)
                                            (aStack_2e4.sbcset + aVar50.idx * 3,aVar5.sbcset);
                          if (iVar6 != 0) goto LAB_000275d4;
                          aVar50.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);
                        }
                        iVar6 = (*(code *)pprStack_2e8)
                                          (aVar5.sbcset,
                                           *(undefined4 *)
                                            (((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc
                                            + (int)aStack_2f0.sbcset));
                        if (iVar6 == 0) goto LAB_000275d4;
                        aVar63 = aStack_300;
                        if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) break;
                      }
                    }
                    aVar57.sbcset =
                         (re_bitset_ptr_t)
                         ((int)&((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs + 1);
                    aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->nranges;
                    aVar5.sbcset = (re_bitset_ptr_t)&(aVar5.mbcset)->char_classes;
                  } while (aVar57.idx < aVar50.idx);
                }
                if (aVar50.sbcset == aVar57.sbcset) {
                  paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(ppprStack_2e0 + aVar50.idx * 8);
                  paVar42->ctx_type = (re_context_type)aaStack_2bc[0];
                  paVar42[1] = aaStack_2bc[1];
                  paVar42[2] = aaStack_2bc[2];
                  paVar42[3] = aaStack_2bc[3];
                  paVar42[4] = aaStack_2bc[4];
                  paVar42[5] = aaStack_2bc[5];
                  paVar42[6] = aaStack_2bc[6];
                  paVar42[7] = aaStack_2bc[7];
                  iVar6 = (*(code *)pprStack_2d8)
                                    (aStack_2e4.sbcset + aVar50.idx * 3,
                                     *(undefined4 *)
                                      (((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc +
                                      (int)aStack_2f0.sbcset));
                  if (iVar6 != 0) {
LAB_000275d4:
                    if (aVar50.idx < 1) {
                      aVar50.idx = -1;
                      aVar63 = aStack_300;
                    }
                    else {
                      aVar57.sbcset = aStack_2ec.sbcset + aVar50.idx * 3;
                      aVar55 = aStack_2ec;
                      do {
                        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))
                                  ((aVar55.mbcset)->range_ends);
                        aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;
                        aVar50.idx = -1;
                        aVar63 = aStack_300;
                      } while (aVar55.sbcset != aVar57.sbcset);
                    }
                    goto LAB_00027610;
                  }
                  bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);
                  aVar50.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);
                  aVar63 = aStack_300;
                }
              }
              else if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
                        (anon_union_4_5_a39f51ca_for_opr *)0x1) &&
                      ((((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc & 0x200U) != 0)) {
                bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);
                aVar63 = aStack_300;
              }
              else {
                paVar42 = aaStack_2bc;
                if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {
                  pprVar49 = (re_node_set **)(aVar64.idx + 0x60);
                  aVar52.sbcset = (re_bitset_ptr_t)&aStack_29c;
                  rVar43 = 0;
                  do {
                    prVar23 = *pprVar49;
                    aVar59.ctx_type = paVar42->ctx_type;
                    paVar42->ctx_type = ~(uint)prVar23 & aVar59.ctx_type;
                    rVar43 = rVar43 | ~(uint)prVar23 & aVar59.ctx_type;
                    paVar42 = paVar42 + 1;
                    pprVar49 = pprVar49 + 1;
                  } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)aVar52.sbcset);
                }
                else {
                  aVar59.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);
                  puVar47 = (uint *)((re_node_set *)(aVar64.idx + 0x3c))->alloc;
                  rVar43 = 0;
                  do {
                    aVar52.ctx_type = paVar42->ctx_type;
                    rVar22 = ~((uint)*aVar59.sbcset & *puVar47) & aVar52.ctx_type;
                    paVar42->ctx_type = rVar22;
                    rVar43 = rVar43 | rVar22;
                    paVar42 = paVar42 + 1;
                    aVar59.sbcset = aVar59.sbcset + 4;
                    puVar47 = puVar47 + 1;
                  } while (paVar42 != &aStack_29c);
                }
                if (rVar43 != 0) goto LAB_00027078;
              }
            }
            else if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
                      (anon_union_4_5_a39f51ca_for_opr *)0x1) &&
                    ((((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc & 0x200U) == 0)) {
              bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);
              aVar63 = aStack_300;
            }
            else {
              paVar42 = aaStack_2bc;
              if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {
                paVar42 = aaStack_2bc;
                paVar48 = (anon_union_4_5_a39f51ca_for_opr *)(aVar64.idx + 0x60);
                aVar52.sbcset = (re_bitset_ptr_t)&aStack_29c;
                rVar43 = 0;
                do {
                  rVar22 = paVar42->ctx_type;
                  aVar59 = (anon_union_4_5_a39f51ca_for_opr)paVar48->ctx_type;
                  paVar42->ctx_type = rVar22 & aVar59.ctx_type;
                  rVar43 = rVar43 | rVar22 & aVar59.ctx_type;
                  paVar42 = paVar42 + 1;
                  paVar48 = paVar48 + 1;
                } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)aVar52.sbcset);
              }
              else {
                aVar59.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);
                puVar47 = (uint *)((re_node_set *)(aVar64.idx + 0x3c))->alloc;
                rVar43 = 0;
                do {
                  aVar52.ctx_type = paVar42->ctx_type;
                  rVar22 = (~*puVar47 | (uint)*aVar59.sbcset) & aVar52.ctx_type;
                  paVar42->ctx_type = rVar22;
                  rVar43 = rVar43 | rVar22;
                  paVar42 = paVar42 + 1;
                  aVar59.sbcset = aVar59.sbcset + 4;
                  puVar47 = puVar47 + 1;
                } while (paVar42 != &aStack_29c);
              }
              if (rVar43 != 0) goto LAB_0002700c;
            }
          }
          else {
            bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);
            aVar63 = aStack_300;
          }
        }
        else {
          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
              (anon_union_4_5_a39f51ca_for_opr *)0x3) {
            bitset_merge((bitset_word_t *)&aaStack_2bc[0].c,
                         (bitset_word_t *)((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs);
            aVar63 = aStack_300;
            goto LAB_00026f88;
          }
          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
              (anon_union_4_5_a39f51ca_for_opr *)&DAT_00000005) {
            if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {
              aaStack_2bc[0].idx = -1;
              aaStack_2bc[1].idx = -1;
              aaStack_2bc[2].idx = -1;
              aaStack_2bc[3].idx = -1;
              aaStack_2bc[4].idx = -1;
              aaStack_2bc[5].idx = -1;
              aaStack_2bc[6].idx = -1;
              aaStack_2bc[7].idx = -1;
            }
            else {
              bitset_merge((bitset_word_t *)&aaStack_2bc[0].c,
                           (bitset_word_t *)((re_node_set *)(aVar64.idx + 0x3c))->alloc);
              aVar63 = aStack_300;
            }
            uVar11 = ((re_node_set *)(aVar64.idx + 0x80))->alloc;
            if ((uVar11 & 0x40) == 0) {
              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffbff);
            }
            if ((uVar11 & 0x80) != 0) {
              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffffe);
            }
            goto LAB_00026f88;
          }
          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==
              (anon_union_4_5_a39f51ca_for_opr *)0x7) {
            aaStack_2bc[0].idx = -1;
            aaStack_2bc[1].idx = -1;
            aaStack_2bc[2].idx = -1;
            aaStack_2bc[3].idx = -1;
            uVar11 = ((re_node_set *)(aVar64.idx + 0x80))->alloc;
            if ((uVar11 & 0x40) == 0) {
              aaStack_2bc[0].idx = -0x401;
            }
            if ((uVar11 & 0x80) != 0) {
              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffffe);
            }
            goto LAB_00026f88;
          }
        }
LAB_00027478:
        aStack_2f4.sbcset =
             (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_2f4.mbcset)->mbchars)->raw_mbs + 1);
      } while (aStack_2f4.idx < (int)(aVar60.mbcset)->range_ends);
      aVar45.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);
      if (0 < aVar50.idx) {
        aStack_2f8.idx = re_node_set_alloc(&rStack_2c8,aVar45.idx);
        aStack_2cc.idx = aStack_2f8.idx;
        if (((re_dfa_t *)aStack_2f8.sbcset == (re_dfa_t *)0x0) &&
           (aVar50.sbcset < (re_dfa_t *)0x155551ab)) {
          iStack_2d4 = aVar50.idx * 0xc;
          aStack_2f0.sbcset =
               (re_bitset_ptr_t)
               (*(code *)((re_node_set *)(aStack_300.idx + -0x7e1c))->alloc)(iStack_2d4);
          if ((re_dfa_t *)aStack_2f0.sbcset != (re_dfa_t *)0x0) {
            aStack_2e4.sbcset = aStack_2f0.sbcset + aVar50.idx;
            ppprStack_2e0 = (re_dfastate_t ***)(aStack_2e4.sbcset + aVar50.idx);
            bitset_empty((bitset_word_t *)&aaStack_27c[0].c);
            aVar5.sbcset = (re_bitset_ptr_t)&(aStack_2ec.mbcset)->range_starts;
            aStack_2f4.sbcset = aStack_2f8.sbcset;
            pprStack_2d8 = (re_dfastate_t **)0x0;
            aVar51.sbcset = (re_bitset_ptr_t)&rStack_2c8;
            aVar46.sbcset =
                 (re_bitset_ptr_t)
                 ((re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x15d4);
            pprStack_2e8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count +
                           -0xa1a;
            pprStack_2dc = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count +
                           -0x1e7c;
            do {
              rStack_2c8.nelem = 0;
              if (0 < (int)*aVar5.sbcset) {
                aVar10.idx = -1;
                aVar63 = aStack_2f8;
                do {
                  iVar6 = *(int *)(((re_node_set *)&(aVar64.mbcset)->char_classes)->alloc +
                                  *(int *)(((re_node_set *)&(aVar5.mbcset)->range_starts)->alloc +
                                          aVar63.idx * 4) * 4);
                  if (iVar6 != -1) {
                    aVar45.sbcset =
                         (re_bitset_ptr_t)
                         (((re_node_set *)&(aVar64.mbcset)->ncoll_syms)->alloc + iVar6 * 0xc);
                    aStack_2cc.sbcset = (re_bitset_ptr_t)(*(code *)aVar46)(aVar51.sbcset);
                    if ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0) goto LAB_00027794;
                  }
                  aVar63.sbcset =
                       (re_bitset_ptr_t)
                       ((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 1);
                  aVar52.sbcset = (re_bitset_ptr_t)0x0;
                } while (aVar63.idx < (int)*aVar5.sbcset);
              }
              aVar52.sbcset = (re_bitset_ptr_t)0x0;
              aVar45 = aVar64;
              aVar59.sbcset = aVar51.sbcset;
              pprVar24 = (re_dfastate_t **)(*(code *)pprStack_2e8)(&aStack_2cc);
              aVar63 = aStack_2f4;
              pIVar54 = (Idx *)(aStack_2f0.sbcset + aStack_2f4.idx);
              *pIVar54 = (Idx)pprVar24;
              if ((pprVar24 == (re_dfastate_t **)0x0) &&
                 ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0)) {
                pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);
                goto LAB_00027798;
              }
              if (((uint)pprVar24[0xd] & 0x1000000) == 0) {
                aStack_2e4.sbcset[aStack_2f4.idx] = (bitset_word_t)pprVar24;
                ppprStack_2e0[aStack_2f4.idx] = pprVar24;
              }
              else {
                aVar52.idx = 1;
                aVar45 = aVar64;
                aVar59.sbcset = aVar51.sbcset;
                iVar6 = (*(code *)pprStack_2e8)(&aStack_2cc);
                aStack_2e4.sbcset[aVar63.idx] = iVar6;
                if ((iVar6 == 0) && ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0)) {
                  pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);
                  goto LAB_00027798;
                }
                if ((iVar6 != *pIVar54) && (1 < (int)*(Idx **)(aVar64.idx + 0x5c))) {
                  pprStack_2d8 = (re_dfastate_t **)0x1;
                }
                aVar52.idx = 2;
                aVar45 = aVar64;
                aVar59.sbcset = aVar51.sbcset;
                pprVar24 = (re_dfastate_t **)(*(code *)pprStack_2e8)(&aStack_2cc);
                ppprStack_2e0[aVar63.idx] = pprVar24;
                if ((pprVar24 == (re_dfastate_t **)0x0) &&
                   (aVar10 = aVar63, (re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0))
                goto LAB_00027794;
              }
              aVar55 = aStack_2ec;
              aVar10.idx = aVar63.idx * 0x20;
              (*(code *)pprStack_2dc)
                        (aaStack_27c,(re_dfastate_t ***)(aStack_2ec.idx + 0xc00) + aVar63.idx * 8);
              aStack_2f4.sbcset = (re_bitset_ptr_t)(aStack_2f4.idx + 1);
              aVar5.sbcset = (re_bitset_ptr_t)&(aVar5.mbcset)->char_classes;
            } while (aStack_2f4.sbcset != aVar50.sbcset);
            aVar45.idx = 0x100;
            if (pprStack_2d8 == (re_dfastate_t **)0x0) {
              aVar51.sbcset =
                   (re_bitset_ptr_t)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);
              ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x2c))->sbcset =
                   (re_bitset_ptr_t)aVar51;
              if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) {
LAB_00027794:
                pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);
                aVar63 = aVar10;
LAB_00027798:
                (*(code *)pbVar69)(aStack_2f0.sbcset);
                aVar10 = aVar63;
                goto LAB_000277a4;
              }
              paVar42 = aaStack_27c;
              aVar64.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);
              aVar45.sbcset = (re_bitset_ptr_t)0x0;
              aVar63 = aVar55;
              do {
                rVar43 = paVar42->ctx_type;
                aVar52 = aVar45;
                if (rVar43 != 0) {
                  uVar11 = 1;
                  do {
                    if ((rVar43 & 1) != 0) {
                      aVar59 = aStack_2f8;
                      aVar57 = aVar63;
                      if ((uVar11 & (uint)*(re_dfastate_t ***)(aVar63.idx + 0xc00)) == 0) {
                        do {
                          aVar59.sbcset =
                               (re_bitset_ptr_t)
                               ((int)&((re_string_t *)&(aVar59.mbcset)->mbchars)->raw_mbs + 1);
                          ppIVar33 = (Idx **)(aVar57.idx + 0xc20);
                          aVar57 = (anon_union_4_5_a39f51ca_for_opr)&(aVar57.mbcset)->nranges;
                        } while ((uVar11 & (uint)*ppIVar33) == 0);
                      }
                      else {
                        aVar59.sbcset = (re_bitset_ptr_t)0x0;
                      }
                      if ((uVar11 & (uint)*aVar64.sbcset) == 0) {
                        aVar51.sbcset[aVar52.idx] = aStack_2f0.sbcset[aVar59.idx];
                        aVar59 = aStack_2f0;
                      }
                      else {
                        aVar51.sbcset[aVar52.idx] = aStack_2e4.sbcset[aVar59.idx];
                        aVar59 = aStack_2e4;
                      }
                    }
                    uVar11 = uVar11 << 1;
                    rVar43 = rVar43 >> 1;
                    aVar52.sbcset =
                         (re_bitset_ptr_t)
                         ((int)&((re_string_t *)&(aVar52.mbcset)->mbchars)->raw_mbs + 1);
                  } while (rVar43 != 0);
                }
                paVar42 = paVar42 + 1;
                aVar45.sbcset = (re_bitset_ptr_t)&(aVar45.mbcset)->nranges;
                aVar64.sbcset = aVar64.sbcset + 4;
                aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;
              } while ((re_state_table_entry **)aVar45.sbcset != (re_state_table_entry **)0x100);
            }
            else {
              aVar45.idx = 0x200;
              aVar51.sbcset =
                   (re_bitset_ptr_t)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);
              ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x30))->mbcset =
                   (re_charset_t *)aVar51;
              if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) goto LAB_00027794;
              paVar42 = aaStack_27c;
              aVar63 = aVar55;
              aVar45.sbcset = aVar51.sbcset;
              do {
                rVar43 = paVar42->ctx_type;
                if (rVar43 != 0) {
                  uVar11 = 1;
                  aVar52 = aVar45;
                  do {
                    if ((rVar43 & 1) != 0) {
                      aVar57.sbcset = (re_bitset_ptr_t)0x0;
                      pprVar24 = *(re_dfastate_t ***)(aVar63.idx + 0xc00);
                      aVar4 = aVar63;
                      aVar3 = aStack_2f8;
                      while ((uVar11 & (uint)pprVar24) == 0) {
                        aVar57.sbcset =
                             (re_bitset_ptr_t)
                             ((int)&((re_string_t *)&(aVar3.mbcset)->mbchars)->raw_mbs + 1);
                        aVar59.sbcset = (re_bitset_ptr_t)&(aVar4.mbcset)->nranges;
                        pprVar24 = *(re_dfastate_t ***)(aVar4.idx + 0xc20);
                        aVar4 = aVar59;
                        aVar3.sbcset = aVar57.sbcset;
                      }
                      *aVar52.sbcset = aStack_2f0.sbcset[aVar57.idx];
                      ((re_node_set *)(aVar52.idx + 0x400))->alloc = aStack_2e4.sbcset[aVar57.idx];
                    }
                    uVar11 = uVar11 << 1;
                    rVar43 = rVar43 >> 1;
                    aVar52.sbcset = (re_bitset_ptr_t)&(aVar52.mbcset)->range_starts;
                  } while (rVar43 != 0);
                }
                paVar42 = paVar42 + 1;
                aVar45.sbcset = (re_bitset_ptr_t)(aVar45.idx + 0x80);
                aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;
              } while ((re_dfa_t *)(aVar51.idx + 0x400) != (re_dfa_t *)aVar45.sbcset);
            }
            aVar45.idx = 10;
            _Var38 = bitset_contain((bitset_word_t *)&aaStack_27c[0].c,10);
            if (CONCAT31(extraout_var_03,_Var38) != 0) {
              set = (re_dfastate_t ***)(aStack_2ec.idx + 0xc00);
              aVar10.sbcset =
                   (re_bitset_ptr_t)
                   ((re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1e9a);
              do {
                aVar5 = aStack_2f8;
                aVar45.idx = 10;
                _Var38 = bitset_contain((bitset_word_t *)set,10);
                if (CONCAT31(extraout_var_04,_Var38) != 0) {
                  prVar7 = (re_dfastate_t *)ppprStack_2e0[aVar5.idx];
                  *(re_dfastate_t **)(aVar51.idx + 0x28) = prVar7;
                  if (pprStack_2d8 != (re_dfastate_t **)0x0) {
                    ((re_dfastate_t *)(aVar51.idx + 0x428))->hash = (re_hashval_t)prVar7;
                  }
                  break;
                }
                aStack_2f8.sbcset =
                     (re_bitset_ptr_t)
                     ((int)&((re_string_t *)&(aStack_2f8.mbcset)->mbchars)->raw_mbs + 1);
                set = set + 8;
              } while (aStack_2f8.sbcset != aVar50.sbcset);
            }
            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2f0.sbcset);
            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(rStack_2c8.elems);
            aVar57.sbcset = iStack_2d4 + aVar55.sbcset;
            do {
              (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))
                        ((aVar55.mbcset)->range_ends);
              aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;
            } while (aVar57.sbcset != aVar55.sbcset);
            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2ec.sbcset);
            prVar7 = (re_dfastate_t *)0x1;
            goto LAB_00027804;
          }
        }
LAB_000277a4:
        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(rStack_2c8.elems);
        aVar57.sbcset = aStack_2ec.sbcset + aVar50.idx * 3;
        aVar55 = aStack_2ec;
        do {
          (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))((aVar55.mbcset)->range_ends)
          ;
          aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;
        } while (aVar55.sbcset != aVar57.sbcset);
        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2ec.sbcset);
        prVar7 = (re_dfastate_t *)0x0;
        goto LAB_00027804;
      }
    }
LAB_00027610:
    (*(code *)*(bin_tree_storage_t **)(aVar63.idx + -0x7db0))(aStack_2ec.sbcset);
    aVar45.idx = 0x100;
    if ((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) {
      prVar7 = (re_dfastate_t *)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);
      *(re_dfastate_t **)(aVar60.idx + 0x2c) = prVar7;
      prVar7 = (re_dfastate_t *)(uint)(prVar7 != (re_dfastate_t *)0x0);
    }
    else {
      prVar7 = (re_dfastate_t *)0x0;
    }
  }
LAB_00027804:
  if ((re_dfa_t *)aStack_25c.sbcset ==
      (re_dfa_t *)(*(re_dfastate_t **)(aStack_300.idx + -0x7dbc))->hash) {
    return prVar7;
  }
  pcVar68 = *(code **)(aStack_300.idx + -0x7ddc);
  pcVar70 = re_search_internal;
  preg = aStack_25c;
  (*pcVar68)();
  aVar3 = aStack_2f4;
  aVar4 = aStack_300;
  pcStack_33c = (char *)**(undefined4 **)(pcVar68 + 0x16664);
  aVar65 = (anon_union_4_5_a39f51ca_for_opr)*preg.sbcset;
  aVar63.sbcset = (re_bitset_ptr_t)0x0;
  aStack_338 = aVar55;
  aStack_334 = aVar57;
  aStack_330 = aVar50;
  paStack_32c = (anon_union_4_5_a39f51ca_for_opr *)aVar10;
  aStack_328 = aVar51;
  aStack_324 = aVar5;
  aStack_320 = aVar64;
  aStack_31c = aVar46;
  aStack_318 = aVar60;
  pcStack_314 = pcVar70;
  aStack_308 = aVar59;
  (**(code **)(pcVar68 + 0x165e0))(&aStack_3c4,0,0x88);
  iStack_458 = ((mbstate_t *)(preg.sbcset + 4))->__count;
  if (iStack_458 != 0) {
    if ((*(byte *)(preg.sbcset + 7) & 0x10) == 0) {
      iStack_458 = 0;
    }
    else if (aVar52.sbcset == aVar4.sbcset) {
      iStack_458 = 0;
    }
    else if ((char)*(byte *)(preg.sbcset + 7) < '\0') {
      iStack_458 = 0;
    }
  }
  if ((re_dfa_t *)preg.sbcset[6] < (uint)aStack_2f8) {
    iStack_428 = (int)(aStack_2f8.idx + -1) - (int)preg.sbcset[6];
  }
  else {
    iStack_428 = 0;
  }
  aStack_370 = aVar65;
  if ((wint_t *)preg.sbcset[2] == (wint_t *)0x0) {
    prStack_460 = (re_dfastate_t *)0x1;
    goto LAB_00028eb4;
  }
  if ((aVar65.mbcset)->nchar_classes == 0) {
    prStack_460 = (re_dfastate_t *)0x1;
    goto LAB_00028eb4;
  }
  if (*(int *)(aVar65.idx + 0x28) == 0) {
    prStack_460 = (re_dfastate_t *)0x1;
    goto LAB_00028eb4;
  }
  if (*(int *)(aVar65.idx + 0x2c) == 0) {
    prStack_460 = (re_dfastate_t *)0x1;
    goto LAB_00028eb4;
  }
  aVar63 = (anon_union_4_5_a39f51ca_for_opr)
           ((anon_union_4_5_a39f51ca_for_opr *)(aVar65.idx + 0x30))->ctx_type;
  if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)0x0) {
    prStack_460 = (re_dfastate_t *)0x1;
    goto LAB_00028eb4;
  }
  aVar5 = aVar4;
  if ((((*(int *)((aVar65.mbcset)->nchar_classes + 8) == 0) &&
       (*(int *)(*(int *)(aVar65.idx + 0x28) + 8) == 0)) &&
      ((*(int *)(*(int *)(aVar65.idx + 0x2c) + 8) == 0 || (((uint)preg.sbcset[7] & 0x1000000) == 0))
      )) && ((aVar5 = aVar52, (re_dfa_t *)aVar52.sbcset != (re_dfa_t *)0x0 &&
             (aVar52 = aVar4, aVar5 = aVar4, (re_dfa_t *)aVar4.sbcset != (re_dfa_t *)0x0)))) {
    prStack_460 = (re_dfastate_t *)0x1;
    goto LAB_00028eb4;
  }
  aVar46.sbcset = aStack_2f8.sbcset - iStack_428;
  if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {
    bVar39 = *(int *)(aVar65.idx + 0x4c) != 0;
  }
  else {
    bVar39 = true;
  }
  uVar11 = ((anon_union_4_2_91654ee9_for___value *)(preg.sbcset + 5))->__wch;
  bStack_37c = (byte)((uint)((int)preg.sbcset[3] << 9) >> 0x1f);
  aStack_374 = (anon_union_4_5_a39f51ca_for_opr)
               ((anon_union_4_5_a39f51ca_for_opr *)(aVar65.idx + 0x5c))->idx;
  aVar59.sbcset = (re_bitset_ptr_t)((int)(aVar65.mbcset)->range_ends + 1);
  if (aVar59.idx < aStack_374.idx) {
    aVar59 = aStack_374;
  }
  aVar60.idx._0_3_ = 0;
  aVar60.idx._3_1_ = ((re_bitset_ptr_t)(aStack_308.idx + 1)).idx < aVar59.idx;
  aStack_394.sbcset = aStack_308.sbcset;
  aStack_398.sbcset = aStack_308.sbcset;
  bStack_379 = bStack_37c;
  if (uVar11 != 0) {
    bStack_379 = 1;
  }
  bStack_37b = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 2) >> 0x1f);
  bStack_37a = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 3) >> 0x1f);
  aStack_38c.sbcset = aStack_308.sbcset;
  aStack_390.sbcset = aStack_308.sbcset;
  aVar63.sbcset = ((re_bitset_ptr_t)(aStack_308.idx + 1)).sbcset;
  if ((re_dfa_t *)aVar60.sbcset == (re_dfa_t *)0x0) {
    aVar63 = aVar59;
  }
  aStack_3c4 = aVar45;
  uStack_384 = uVar11;
  prStack_460 = (re_dfastate_t *)re_string_realloc_buffers((re_string_t *)&aStack_3c4,aVar63.idx);
  if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_00028e84;
  iStack_380 = aVar65.idx + 0x60;
  bStack_376 = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 4) >> 0x1f);
  aVar59.sbcset = (re_bitset_ptr_t)0x0;
  aStack_3a8.sbcset = aVar59.sbcset;
  if ((bStack_379 == 0) && (aStack_3c0 = aVar45, *(int *)(aVar65.idx + 0x5c) < 2)) {
    aStack_3a8 = aStack_308;
  }
  aStack_38c = aStack_2fc;
  aStack_390 = aStack_2fc;
  bStack_377 = (byte)((uint)((int)preg.sbcset[7] << 7) >> 0x1f);
  iVar6 = *(int *)(aVar65.idx + 0x4c);
  uVar61 = iVar6 * 2;
  aStack_36c.sbcset = aStack_2f0.sbcset;
  aStack_368.idx = -1;
  aStack_3a4 = aStack_3a8;
  if ((int)uVar61 < 1) {
LAB_00029090:
    iStack_34c = 1;
    uStack_354 = uVar61;
    uStack_344 = uVar61;
    if ((aVar46.sbcset < (re_dfa_t *)0x2) && ((*(byte *)(aVar65.idx + 0x58) & 0x40) == 0)) {
      aStack_360.sbcset = (re_bitset_ptr_t)0x0;
LAB_000290e0:
      uStack_388 = 6;
      if ((aStack_2f0.ctx_type & 1) != 0) {
        uStack_388 = 4;
      }
      iVar6 = 1;
      aVar64 = aVar52;
      if (aVar5.idx < aVar52.idx) {
        iVar6 = -1;
        aVar64 = aVar5;
      }
      aVar51 = aVar5;
      if (aVar5.idx <= aVar52.idx) {
        aVar51 = aVar52;
      }
      iVar36 = *(int *)(aVar65.idx + 0x5c);
      rVar43 = 8;
      if (iStack_458 != 0) {
        if (iVar36 == 1) {
          aVar59.idx = 4;
        }
        else if ((-1 < (int)preg.sbcset[3] << 9) && (uVar11 == 0)) {
          aVar59.idx = 4;
        }
        aVar63.sbcset = (re_bitset_ptr_t)0x0;
        if (aVar52.idx <= aVar5.idx) {
          aVar63.idx = 2;
        }
        rVar43 = uVar11 != 0 | aVar59.ctx_type | aVar63.ctx_type;
      }
      aStack_3ec = aVar52;
      if (aVar52.idx < aVar64.idx) {
        prStack_460 = (re_dfastate_t *)0x1;
      }
      else if (aVar51.idx < aVar52.idx) {
        prStack_460 = (re_dfastate_t *)0x1;
      }
      else {
        paVar42 = &aStack_3ec;
        if (aVar5.idx < aVar52.idx) {
          paVar42 = (anon_union_4_5_a39f51ca_for_opr *)0x0;
        }
        iVar25 = *(int *)(pcVar68 + 0x16538);
        iVar26 = *(int *)(pcVar68 + 0x16458);
LAB_000291e4:
        aVar5 = aStack_308;
        if (rVar43 - 4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x000291fc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          prVar7 = (re_dfastate_t *)
                   (*(pcVar68 + *(int *)(iVar26 + -0x3404 + (rVar43 - 4) * 4) + 0x1e420))();
          return prVar7;
        }
        while( true ) {
          aVar59 = aStack_3ec;
          prVar27 = (re_dfa_t *)((int)aStack_3ec.sbcset - iStack_3ac);
          aVar60 = aStack_2f0;
          if (aStack_3a4.sbcset <= prVar27) {
            aVar63 = aStack_3ec;
            prStack_460 = (re_dfastate_t *)(*(code *)(iVar25 + -0x440))(&aStack_3c4);
            if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_00028e84;
            prVar27 = (re_dfa_t *)((int)aVar59.sbcset - iStack_3ac);
          }
          if (aVar59.idx < aVar5.idx) {
            uVar61 = (uint)*(byte *)((int)aStack_3c0.sbcset + (int)prVar27);
          }
          else {
            uVar61 = 0;
          }
          aVar59.sbcset = aVar59.sbcset + iVar6;
          if (*(char *)(iStack_458 + uVar61) != '\0') break;
          aStack_3ec.sbcset = aVar59.sbcset;
          if (aVar59.idx < aVar64.idx) {
            prStack_460 = (re_dfastate_t *)0x1;
            goto LAB_00028e84;
          }
          if (aVar51.idx < aVar59.idx) {
            prStack_460 = (re_dfastate_t *)0x1;
            goto LAB_00028e84;
          }
        }
        while( true ) {
          aVar63 = aStack_3ec;
          aVar60 = aStack_2f0;
          prVar7 = (re_dfastate_t *)(*(code *)(iVar25 + -0x440))(&aStack_3c4);
          aVar59 = aStack_370;
          aVar5 = aStack_39c;
          prStack_460 = prVar7;
          if (prVar7 != (re_dfastate_t *)0x0) goto LAB_00028e84;
          if (((iVar36 != 1) && ((re_dfa_t *)aStack_3a8.sbcset != (re_dfa_t *)0x0)) &&
             (*piStack_3bc == -1)) goto LAB_000291bc;
          iStack_34c = 0;
          uStack_358 = 0;
          aStack_35c.sbcset = (re_bitset_ptr_t)0x0;
          aStack_448.sbcset = aStack_39c.sbcset;
          aStack_3e8.sbcset = (re_bitset_ptr_t)0x0;
          aVar50 = (anon_union_4_5_a39f51ca_for_opr)(aStack_370.mbcset)->nchar_classes;
          aVar60 = aStack_36c;
          if ((*(byte *)(aVar50.idx + 0x34) & 1) == 0) break;
          aVar63.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + -1);
          uVar61 = re_string_context_at((re_string_t *)&aStack_3c4,aVar63.idx,aStack_36c.idx);
          if ((uVar61 & 1) == 0) {
            if (uVar61 == 0) break;
            if ((uVar61 & 6) == 6) {
              aVar50 = (anon_union_4_5_a39f51ca_for_opr)
                       ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x30))->mbcset;
              goto LAB_000283bc;
            }
            if ((uVar61 & 2) != 0) {
              aVar50 = (anon_union_4_5_a39f51ca_for_opr)
                       ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x2c))->mbcset;
              goto LAB_000283bc;
            }
            if ((uVar61 & 4) == 0) break;
            aVar60 = (anon_union_4_5_a39f51ca_for_opr)
                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar50.idx + 0x28))->mbcset;
            aVar63 = aVar59;
            aVar50.sbcset =
                 &re_acquire_state_context
                            (&aStack_3e8.idx,aVar59.sbcset,(re_node_set *)aVar60.mbcset,uVar61)->
                  hash;
            if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) break;
            if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0xc) goto LAB_00028fb4;
            iVar53 = *(int *)(pcVar68 + 0x16458);
          }
          else {
            aVar50 = (anon_union_4_5_a39f51ca_for_opr)
                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x28))->mbcset;
LAB_000283bc:
            iVar53 = *(int *)(pcVar68 + 0x16458);
            if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) break;
          }
          aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x16458) + -0x3140);
          aStack_3ec.sbcset =
               (re_bitset_ptr_t)
               (**(code **)(pcVar68 + 0x16570))
                         (*(int *)(pcVar68 + 0x16458) + -0x30b8,aVar63.sbcset,0x431,iVar53 + -0x33c0
                         );
          if (aStack_3ec.sbcset == aVar51.sbcset) {
            if (aStack_3ec.idx < aStack_308.idx) {
              uVar61 = (uint)*(byte *)((int)aVar45.sbcset + (int)aStack_3ec.sbcset);
            }
            else {
              uVar61 = 0;
            }
            if (uVar11 != 0) {
              uVar61 = (uint)*(byte *)(uVar11 + uVar61);
            }
            if (*(char *)(iStack_458 + uVar61) == '\0') {
              prStack_460 = (re_dfastate_t *)0x1;
              aVar60 = aStack_2f0;
              goto LAB_00028e84;
            }
          }
        }
        bVar2 = paVar42 != (anon_union_4_5_a39f51ca_for_opr *)0x0;
        if (((re_dfa_t *)aStack_360.sbcset == (re_dfa_t *)0x0) ||
           (((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar5.idx))->mbcset =
                 (re_charset_t *)aVar50, *(int *)(aVar59.idx + 0x4c) == 0)) {
LAB_000283f0:
          if ((int)*(bin_tree_t **)(aVar50.idx + 0x34) << 4 < 0) {
            if (((*(byte *)(aVar50.idx + 0x34) & 1) == 0) ||
               (aVar63 = aVar50, aVar60 = aVar5,
               IVar34 = check_halt_state_context
                                  ((re_match_context_t *)&aStack_3c4,aVar50.idx,aVar5.idx),
               IVar34 != 0)) {
              aVar59 = aVar5;
              if (!bVar39) goto LAB_0002945c;
              aVar59.idx = 1;
            }
            else {
              aVar5.idx = -1;
              aVar59.sbcset = (re_bitset_ptr_t)0x0;
            }
          }
          else {
            aVar5.idx = -1;
            aVar59.sbcset = (re_bitset_ptr_t)0x0;
          }
          iVar53 = *(int *)(pcVar68 + 0x16538);
          iVar28 = *(int *)(pcVar68 + 0x16538);
          iVar29 = *(int *)(pcVar68 + 0x16538);
          paStack_454 = paVar42;
          while( true ) {
            uVar71 = CONCAT44(aStack_3a8.sbcset,aStack_394.sbcset);
            aVar10.sbcset =
                 (re_bitset_ptr_t)
                 ((int)&((re_string_t *)&(aStack_39c.mbcset)->mbchars)->raw_mbs + 1);
            aVar63 = aStack_39c;
            if (aStack_38c.idx <= aStack_39c.idx) break;
            if (((int)uStack_3a0 <= aVar10.idx) && ((int)uStack_3a0 < aStack_394.idx))
            goto LAB_00028534;
            if (aStack_3a8.idx <= aVar10.idx) {
              while ((int)((ulonglong)uVar71 >> 0x20) < (int)uVar71) {
LAB_00028534:
                aVar63.sbcset =
                     (re_bitset_ptr_t)
                     ((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 2);
                aStack_3e8.sbcset = (re_bitset_ptr_t)(*(code *)(iVar53 + -0x47b0))(&aStack_3c4);
                if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0x0) break;
                if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0xc) goto LAB_00028fb4;
                aVar60.idx = 0x468;
                aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x16458) + -0x3140);
                uVar71 = (**(code **)(pcVar68 + 0x16570))
                                   (*(int *)(pcVar68 + 0x16458) + -0x30b8,aVar63.sbcset,0x468,
                                    *(int *)(pcVar68 + 0x16458) + -0x33c0);
                aVar59 = aVar65;
              }
            }
            aVar55 = aStack_370;
            if ((int)*(bin_tree_t **)(aVar50.idx + 0x34) << 5 < 0) {
              if (0 < (int)(aVar50.mbcset)->range_ends) {
                iVar30 = *(int *)(pcVar68 + 0x16538);
                pcVar70 = (code *)(*(int *)(pcVar68 + 0x16538) + -0x455c);
                iVar58 = 0;
                do {
                  aVar57 = (anon_union_4_5_a39f51ca_for_opr)
                           ((anon_union_4_5_a39f51ca_for_opr *)
                           (((re_node_set *)&(aVar50.mbcset)->char_classes)->alloc + iVar58 * 4))->
                           idx;
                  pwVar56 = (aVar55.mbcset)->mbchars;
                  uVar61 = pwVar56[aVar57.idx * 2 + 1];
                  if ((uVar61 & 0x800) != 0) {
                    if ((uVar61 & 0xffc000) != 0) {
                      aVar63 = aStack_39c;
                      uVar32 = (*pcVar70)(&aStack_3c4,aStack_39c.sbcset,aStack_36c.sbcset);
                      uVar61 = (uint)(pwVar56[aVar57.idx * 2 + 1] << 8) >> 0x16;
                      if ((uVar61 & 4) == 0) {
                        uVar44 = uVar32 & 1;
                        if ((uVar61 & 8) != 0) goto joined_r0x000285e0;
                      }
                      else {
                        uVar44 = uVar61 & 8;
                        if ((uVar32 & 1) == 0) goto LAB_00028744;
joined_r0x000285e0:
                        if (uVar44 != 0) goto LAB_00028744;
                      }
                      if ((((uVar61 & 0x20) != 0) && ((uVar32 & 2) == 0)) ||
                         (((uVar61 & 0x80) != 0 && ((uVar32 & 8) == 0)))) goto LAB_00028744;
                    }
                    aVar60.sbcset = (re_bitset_ptr_t)&aStack_3c4;
                    aVar63 = aVar57;
                    iVar31 = (*(code *)(iVar29 + -0x860))
                                       (aVar55.sbcset,aVar57.sbcset,aVar60.sbcset,aStack_39c.sbcset)
                    ;
                    if (iVar31 != 0) {
                      aVar52.sbcset = iVar31 + aStack_39c.sbcset;
                      if (iVar31 <= iStack_34c) {
                        iVar31 = iStack_34c;
                      }
                      aVar63.sbcset = aVar52.sbcset;
                      iStack_34c = iVar31;
                      aStack_3e4.sbcset =
                           (re_bitset_ptr_t)(*(code *)(iVar30 + -0x4648))(&aStack_3c4);
                      aVar4.sbcset = aStack_3e4.sbcset;
                      if ((re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0) goto LAB_000294e4;
                      aVar60.sbcset =
                           (re_bitset_ptr_t)
                           ((aVar55.mbcset)->ncoll_syms +
                           (aVar55.mbcset)->char_classes[aVar57.idx] * 0xc);
                      pIVar54 = (Idx *)(aStack_360.sbcset + aVar52.idx);
                      iVar31 = *pIVar54;
                      if (iVar31 == 0) {
                        aStack_3e0 = (anon_union_4_5_a39f51ca_for_opr)*aVar60.sbcset;
                        aStack_3dc = *(anon_union_4_5_a39f51ca_for_opr *)(aVar60.sbcset + 1);
                        aStack_3d8 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar60.sbcset + 2);
                        uVar61 = (*pcVar70)(&aStack_3c4,(byte *)(aVar52.idx + -1),aStack_36c.sbcset)
                        ;
                        aVar60.sbcset = (re_bitset_ptr_t)&aStack_3e0;
                        aVar63 = aVar55;
                        prVar66 = re_acquire_state_context
                                            (&aStack_3e4.idx,(re_dfa_t *)aVar55.mbcset,
                                             (re_node_set *)aVar60.mbcset,uVar61);
                        *pIVar54 = (Idx)prVar66;
                      }
                      else {
                        aVar63 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((anon_union_4_5_a39f51ca_for_opr *)(iVar31 + 0x28))->mbcset;
                        aStack_3e4.idx =
                             re_node_set_init_union
                                       ((re_node_set *)&aStack_3e0,(re_node_set *)aVar63.mbcset,
                                        (re_node_set *)aVar60.mbcset);
                        aVar4.idx = aStack_3e4.idx;
                        if ((re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0) goto LAB_000294e4;
                        uVar61 = (*pcVar70)(&aStack_3c4,(byte *)(aVar52.idx + -1),aStack_36c.sbcset)
                        ;
                        pIVar54 = (Idx *)(aStack_360.sbcset + aVar52.idx);
                        aVar60.sbcset = (re_bitset_ptr_t)&aStack_3e0;
                        aVar63 = aVar55;
                        prVar66 = re_acquire_state_context
                                            (&aStack_3e4.idx,(re_dfa_t *)aVar55.mbcset,
                                             (re_node_set *)aVar60.mbcset,uVar61);
                        *pIVar54 = (Idx)prVar66;
                        (**(code **)(pcVar68 + 0x16670))(aStack_3d8.sbcset);
                      }
                      if ((aStack_360.sbcset[aVar52.idx] == 0) &&
                         (aVar4 = aStack_3e4, (re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0))
                      goto LAB_000294e4;
                    }
                  }
LAB_00028744:
                  iVar58 = iVar58 + 1;
                } while (iVar58 < (int)(aVar50.mbcset)->range_ends);
              }
              aStack_3e8.sbcset = (re_bitset_ptr_t)0x0;
            }
            bVar1 = *(byte *)((int)aStack_3c0.sbcset + (int)aStack_39c.sbcset);
            aStack_39c.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + 1);
            do {
              if (*(re_dfastate_t **)(aVar50.idx + 0x2c) != (re_dfastate_t *)0x0) {
                aVar60 = (anon_union_4_5_a39f51ca_for_opr)
                         ((anon_union_4_5_a39f51ca_for_opr *)
                         (&(*(re_dfastate_t **)(aVar50.idx + 0x2c))->hash + bVar1))->mbcset;
LAB_00028a40:
                aVar55 = aVar60;
                if ((re_dfa_t *)aStack_360.sbcset != (re_dfa_t *)0x0) goto LAB_00028a4c;
                goto LAB_00028a6c;
              }
              prVar66 = *(re_dfastate_t **)(aVar50.idx + 0x30);
              if (prVar66 != (re_dfastate_t *)0x0) {
                aVar63.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + -1);
                uVar61 = re_string_context_at((re_string_t *)&aStack_3c4,aVar63.idx,aStack_36c.idx);
                if ((uVar61 & 1) == 0) {
                  aVar60 = (anon_union_4_5_a39f51ca_for_opr)
                           ((anon_union_4_5_a39f51ca_for_opr *)(&prVar66->hash + bVar1))->mbcset;
                }
                else {
                  aVar60 = (anon_union_4_5_a39f51ca_for_opr)
                           ((anon_union_4_5_a39f51ca_for_opr *)
                           (&prVar66[0x12].non_eps_nodes.alloc + bVar1))->mbcset;
                }
                goto LAB_00028a40;
              }
              aVar63 = aVar50;
              aVar60 = aStack_36c;
              iVar58 = (*(code *)(iVar28 + 0x6e9c))(aStack_370.sbcset);
            } while (iVar58 != 0);
            aStack_3e8.idx = 0xc;
            aVar4.idx = aStack_3e8.idx;
LAB_000294e4:
            aStack_3e8 = aVar4;
            if ((re_dfa_t *)aStack_360.sbcset == (re_dfa_t *)0x0) {
              if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) goto LAB_00028fb4;
              break;
            }
            aVar60.sbcset = (re_bitset_ptr_t)0x0;
LAB_00028a4c:
            aVar63.sbcset = (re_bitset_ptr_t)&aStack_3c4;
            aVar55.sbcset =
                 &merge_state_with_log
                            (&aStack_3e8.idx,(re_match_context_t *)aVar63.mbcset,aVar60.sbcset)->
                  hash;
LAB_00028a6c:
            if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) {
              if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) goto LAB_00028fb4;
              if (((re_dfa_t *)aStack_360.sbcset == (re_dfa_t *)0x0) ||
                 ((aVar59.sbcset != (re_bitset_ptr_t)0x0 && (!bVar39)))) break;
              iVar58 = *(int *)(pcVar68 + 0x16538);
              do {
                ppIVar33 = (Idx **)(aStack_360.sbcset + aStack_39c.idx);
                aVar55 = aStack_39c;
                do {
                  aVar55.sbcset =
                       (re_bitset_ptr_t)
                       ((int)&((re_string_t *)&(aVar55.mbcset)->mbchars)->raw_mbs + 1);
                  aVar63 = aStack_35c;
                  if (aStack_35c.idx < aVar55.idx) goto LAB_00029448;
                  aStack_39c.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + 1);
                  ppIVar33 = ppIVar33 + 1;
                } while (*ppIVar33 == (Idx *)0x0);
                aVar60.sbcset = (re_bitset_ptr_t)0x0;
                aVar63.sbcset = (re_bitset_ptr_t)&aStack_3c4;
                aVar55.sbcset = (re_bitset_ptr_t)(*(code *)(iVar58 + 0x4f5c))(&aStack_3e8);
                if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) {
                  if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) goto LAB_00029448;
                  break;
                }
                aVar63 = aStack_35c;
              } while ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0);
            }
            aVar57 = aStack_448;
            if ((bVar2) && (aVar57.sbcset = aVar10.sbcset, aVar50.sbcset != aVar55.sbcset)) {
              bVar2 = false;
              aVar57 = aStack_448;
            }
            aStack_448 = aVar57;
            aVar50 = aVar55;
            if (((*(byte *)(aVar55.idx + 0x34) & 8) != 0) &&
               (((*(byte *)(aVar55.idx + 0x34) & 1) == 0 ||
                (aVar63 = aVar55, aVar60 = aStack_39c,
                IVar34 = check_halt_state_context
                                   ((re_match_context_t *)&aStack_3c4,aVar55.idx,aStack_39c.idx),
                IVar34 != 0)))) {
              aVar59 = aStack_39c;
              if (!bVar39) goto LAB_0002945c;
              aVar59.idx = 1;
              paStack_454 = (anon_union_4_5_a39f51ca_for_opr *)0x0;
              aVar5 = aStack_39c;
            }
          }
LAB_00029448:
          aVar59 = aVar5;
          if (paStack_454 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {
            paStack_454->sbcset = (int)paStack_454->sbcset + aStack_448.sbcset;
          }
        }
        else {
          aVar10.sbcset = (re_bitset_ptr_t)&(aVar50.mbcset)->range_starts;
          aVar60.sbcset = (re_bitset_ptr_t)0x0;
          aVar63 = aVar10;
          aStack_3e8.idx =
               check_subexp_matching_top
                         ((re_match_context_t *)&aStack_3c4,(re_node_set *)aVar10.mbcset,0);
          aVar59.idx = aStack_3e8.idx;
          if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0x0) {
            if ((*(byte *)(aVar50.idx + 0x34) & 2) == 0) {
              aVar63 = aVar10;
              bVar2 = false;
            }
            else {
              aStack_3e8.idx =
                   transit_state_bkref((re_match_context_t *)&aStack_3c4,
                                       (re_node_set *)aVar10.mbcset);
              aVar63 = aVar10;
              aVar59.idx = aStack_3e8.idx;
              if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) goto LAB_0002945c;
              bVar2 = false;
            }
            goto LAB_000283f0;
          }
        }
LAB_0002945c:
        if ((re_dfa_t *)aVar59.sbcset == (re_dfa_t *)0xffffffff) {
LAB_000291a4:
          match_ctx_clean((re_match_context_t *)&aStack_3c4);
LAB_000291bc:
          aStack_3ec.sbcset = iVar6 + aStack_3ec.sbcset;
          if (aVar64.idx <= aStack_3ec.idx) goto code_r0x000291d8;
          prStack_460 = (re_dfastate_t *)0x1;
          goto LAB_00028e84;
        }
        if ((re_dfa_t *)aVar59.sbcset == (re_dfa_t *)&SUB_fffffffe) {
          prStack_460 = (re_dfastate_t *)0xc;
          goto LAB_00028e84;
        }
        aStack_368 = aVar59;
        if (((uint)preg.sbcset[7] & 0x8000000) == 0) {
          if (aVar46.sbcset < (re_dfa_t *)0x2) {
            if (*(int *)(aVar65.idx + 0x4c) == 0) goto LAB_000292a8;
            aVar63 = (anon_union_4_5_a39f51ca_for_opr)
                     ((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar59.idx))->mbcset;
            aVar60 = aVar59;
            aStack_364.idx =
                 check_halt_state_context
                           ((re_match_context_t *)&aStack_3c4,(re_dfastate_t *)aVar63.mbcset,
                            aVar59.idx);
          }
          else {
            aVar63 = (anon_union_4_5_a39f51ca_for_opr)
                     ((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar59.idx))->mbcset;
            aVar60 = aVar59;
            aStack_364.idx =
                 check_halt_state_context
                           ((re_match_context_t *)&aStack_3c4,(re_dfastate_t *)aVar63.mbcset,
                            aVar59.idx);
          }
          if (aVar46.sbcset < (re_dfa_t *)0x2) {
LAB_0002930c:
            if (*(int *)(aVar65.idx + 0x4c) == 0) goto LAB_00028be8;
          }
          else {
            cVar40 = *(char *)(aVar65.idx + 0x58);
LAB_000292c0:
            if (-1 < cVar40) goto LAB_0002930c;
          }
          aVar50 = aStack_364;
          aVar5 = aStack_370;
          if ((uint)aVar59 < (re_dfa_t *)0x3fffffff) {
            iVar53 = (int)((int)&((re_string_t *)&(aVar59.mbcset)->mbchars)->raw_mbs + 1) * 4;
            aVar10.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x16604))(iVar53);
            if ((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) {
LAB_0002923c:
              (**(code **)(pcVar68 + 0x16670))(aVar10.sbcset);
              prStack_460 = (re_dfastate_t *)0xc;
            }
            else {
              aVar63.sbcset = (re_bitset_ptr_t)&aStack_3e0;
              if (*(int *)(aVar5.idx + 0x4c) == 0) {
                aStack_3dc.sbcset = (re_bitset_ptr_t)0x0;
                aStack_3d8.sbcset = aVar50.sbcset;
                uStack_3d0 = 0;
                uStack_3cc = 0;
                uStack_3c8 = 0;
                aStack_3e0.sbcset = aVar10.sbcset;
                aStack_3d4 = aVar59;
                prStack_460 = (re_dfastate_t *)
                              sift_states_backward
                                        ((re_match_context_t *)&aStack_3c4,
                                         (re_sift_context_t *)aVar63.mbcset);
                (**(code **)(pcVar68 + 0x16670))(uStack_3c8);
                if (prStack_460 == (re_dfastate_t *)0x0) {
                  if (*aVar10.sbcset == 0) {
                    aVar55.sbcset = (re_bitset_ptr_t)0x0;
LAB_00029210:
                    (**(code **)(pcVar68 + 0x16670))(aVar10.sbcset);
                    (**(code **)(pcVar68 + 0x16670))(aVar55.sbcset);
                    goto LAB_000291a4;
                  }
LAB_00028bc8:
                  (**(code **)(pcVar68 + 0x16670))(aStack_360.sbcset);
                  aStack_368 = aVar59;
                  aStack_364 = aVar50;
                  aStack_360.sbcset = aVar10.sbcset;
                  goto LAB_00028be8;
                }
LAB_0002916c:
                aVar55.sbcset = (re_bitset_ptr_t)0x0;
              }
              else {
                aVar55.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x16604))(iVar53);
                if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) goto LAB_0002923c;
                iVar53 = *(int *)(pcVar68 + 0x16538);
                iVar28 = *(int *)(pcVar68 + 0x16538);
                while( true ) {
                  aVar60.idx = (int)(aVar59.idx + 1) * 4;
                  (**(code **)(pcVar68 + 0x165e0))(aVar55.sbcset,0);
                  uStack_3d0 = 0;
                  uStack_3cc = 0;
                  uStack_3c8 = 0;
                  aVar63.sbcset = (re_bitset_ptr_t)&aStack_3e0;
                  aStack_3e0.sbcset = aVar10.sbcset;
                  aStack_3dc.sbcset = aVar55.sbcset;
                  aStack_3d8 = aVar50;
                  aStack_3d4 = aVar59;
                  prStack_460 = (re_dfastate_t *)(*(code *)(iVar53 + 0x5af4))(&aStack_3c4);
                  (**(code **)(pcVar68 + 0x16670))(uStack_3c8);
                  if (prStack_460 != (re_dfastate_t *)0x0) break;
                  if ((*aVar10.sbcset != 0) || (*aVar55.sbcset != 0)) {
                    aVar63.sbcset = aVar10.sbcset;
                    aVar60.sbcset = aVar55.sbcset;
                    prStack_460 = (re_dfastate_t *)
                                  merge_state_array((re_dfa_t *)aVar5.mbcset,
                                                    (re_dfastate_t **)aVar10.sbcset,
                                                    (re_dfastate_t **)aVar55.sbcset,
                                                    (Idx)(aVar59.idx + 1));
                    (**(code **)(pcVar68 + 0x16670))(aVar55.sbcset);
                    if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_0002916c;
                    goto LAB_00028bc8;
                  }
                  pIVar54 = (Idx *)(aStack_360.sbcset + aVar59.idx);
                  do {
                    while( true ) {
                      aVar59.sbcset = (re_bitset_ptr_t)(aVar59.idx + -1);
                      if (aVar59.idx < 0) goto LAB_00029210;
                      aVar63 = (anon_union_4_5_a39f51ca_for_opr)pIVar54[0xffffffff];
                      if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) break;
                      pIVar54 = pIVar54 + 0xffffffff;
                    }
                    pIVar54 = pIVar54 + 0xffffffff;
                  } while ((*(byte *)(aVar63.idx + 0x34) & 8) == 0);
                  aVar50.sbcset =
                       (re_bitset_ptr_t)
                       (*(code *)(iVar28 + -0x4234))(&aStack_3c4,aVar63.sbcset,aVar59.sbcset);
                }
              }
              (**(code **)(pcVar68 + 0x16670))(aVar10.sbcset);
              (**(code **)(pcVar68 + 0x16670))(aVar55.sbcset);
              if (prStack_460 == (re_dfastate_t *)0x1) goto LAB_000291a4;
            }
          }
          else {
            prStack_460 = (re_dfastate_t *)0xc;
          }
          goto LAB_00028e84;
        }
        if (*(int *)(aVar65.idx + 0x4c) != 0) {
          aVar63 = (anon_union_4_5_a39f51ca_for_opr)
                   ((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar59.idx))->mbcset;
          aVar60 = aVar59;
          aStack_364.idx =
               check_halt_state_context
                         ((re_match_context_t *)&aStack_3c4,(re_dfastate_t *)aVar63.mbcset,
                          aVar59.idx);
          goto LAB_0002930c;
        }
LAB_000292a8:
        if ((((uint)preg.sbcset[7] & 0x8000000) == 0) && ((re_dfa_t *)0x1 < aVar46.sbcset)) {
          cVar40 = *(char *)(aVar65.idx + 0x58);
          goto LAB_000292c0;
        }
LAB_00028be8:
        prStack_460 = prVar7;
        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00028e84;
        if (aVar46.sbcset < (re_dfa_t *)0x2) {
          *aVar3.sbcset = 0;
          ((anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + 1))->idx = (Idx)aStack_368;
          goto LAB_00028c4c;
        }
        paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + 2);
        do {
          paVar42[1].idx = -1;
          paVar42->idx = -1;
          paVar42 = paVar42 + 2;
        } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aVar46.idx * 2));
        *aVar3.sbcset = 0;
        ((anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + 1))->idx = (Idx)aStack_368;
        if (((uint)preg.sbcset[7] & 0x8000000) != 0) {
LAB_00028c4c:
          aVar5 = aVar3;
          do {
            aVar63.sbcset = (re_bitset_ptr_t)*aVar5.sbcset;
            if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0xffffffff) {
              if (cStack_378 != '\0') {
                aVar59 = aStack_3a4;
                if (aVar63.sbcset != aStack_3a8.sbcset) {
                  aVar59 = *(anon_union_4_5_a39f51ca_for_opr *)(iStack_3b8 + aVar63.idx * 4);
                }
                *aVar5.sbcset = (bitset_word_t)aVar59;
                aVar59 = aStack_3a4;
                if ((re_dfa_t *)aStack_3a8.sbcset !=
                    (re_dfa_t *)((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->idx) {
                  aVar59 = *(anon_union_4_5_a39f51ca_for_opr *)
                            (iStack_3b8 +
                            (int)((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->idx * 4);
                }
                *(anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1) = aVar59;
              }
              ((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs =
                   ((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs + (int)aStack_3ec.sbcset;
              aVar63.sbcset =
                   ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->sbcset +
                   aStack_3ec.sbcset;
              ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->sbcset =
                   (re_bitset_ptr_t)aVar63;
            }
            aVar5.sbcset = aVar5.sbcset + 2;
          } while ((anon_union_4_5_a39f51ca_for_opr *)aVar5.sbcset !=
                   (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aVar46.idx * 2));
          if (0 < iStack_428) {
            paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aVar46.idx * 2);
            do {
              paVar42->idx = -1;
              paVar42[1].idx = -1;
              paVar42 = paVar42 + 2;
            } while (paVar42 !=
                     (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aStack_2f8.idx * 2));
          }
          aVar60 = aStack_3ec;
          prStack_460 = prVar7;
          if (*(int *)(aVar65.idx + 0x84) != 0) {
            aVar60.sbcset = (re_bitset_ptr_t)(aVar46.idx + -1);
            prVar27 = (re_dfa_t *)0x0;
            aVar5 = aVar3;
            while( true ) {
              aVar63.idx = (int)prVar27 * 4;
              if ((re_dfa_t *)aVar60.sbcset == prVar27) break;
              prVar35 = *(re_dfa_t **)(*(int *)(aVar65.idx + 0x84) + (int)prVar27 * 4);
              if (prVar35 != prVar27) {
                aVar5.sbcset[2] =
                     (bitset_word_t)
                     *(anon_union_4_5_a39f51ca_for_opr *)
                      (aVar3.sbcset + (int)((int)&((re_string_t *)&prVar35->nodes)->raw_mbs + 1) * 2
                      );
                *(anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 3) =
                     *(anon_union_4_5_a39f51ca_for_opr *)
                      (aVar3.sbcset +
                      (*(int *)(*(int *)(aVar65.idx + 0x84) + (int)prVar27 * 4) + 1) * 2 + 1);
              }
              prVar27 = (re_dfa_t *)((int)&((re_string_t *)&prVar27->nodes)->raw_mbs + 1);
              aVar5.sbcset = aVar5.sbcset + 2;
            }
          }
          goto LAB_00028e84;
        }
        if (*(char *)(aVar65.idx + 0x58) < '\0') {
          bVar39 = 0 < *(int *)(aVar65.idx + 0x4c);
        }
        else {
          bVar39 = false;
        }
        aVar63.sbcset = (re_bitset_ptr_t)&aStack_3c4;
        aVar60.sbcset = aVar46.sbcset;
        prStack_460 = (re_dfastate_t *)
                      set_regs((regex_t *)preg.mbcset,(re_match_context_t *)aVar63.mbcset,
                               aVar46.ctx_type,(regmatch_t *)aVar3.mbcset,bVar39);
        if (prStack_460 == (re_dfastate_t *)0x0) goto LAB_00028c4c;
      }
    }
    else if (uStack_3a0 < 0x3fffffff) {
      aStack_360.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x16604))((uStack_3a0 + 1) * 4);
      if ((re_dfa_t *)aStack_360.sbcset != (re_dfa_t *)0x0) goto LAB_000290e0;
      prStack_460 = (re_dfastate_t *)0xc;
    }
    else {
      prStack_460 = (re_dfastate_t *)0xc;
    }
  }
  else {
    if (uVar61 < 0xccccccd) {
      iVar36 = (**(code **)(pcVar68 + 0x16604))(iVar6 * 0x28);
      iStack_350 = iVar36;
      iStack_340 = (**(code **)(pcVar68 + 0x16604))(iVar6 * 8);
      if ((iVar36 != 0) && (iStack_340 != 0)) goto LAB_00029090;
    }
    prStack_460 = (re_dfastate_t *)0xc;
  }
LAB_00028e84:
  (**(code **)(pcVar68 + 0x16670))(aStack_360.sbcset);
  preg = aVar60;
  if (*(int *)(aVar65.idx + 0x4c) != 0) {
    match_ctx_clean((re_match_context_t *)&aStack_3c4);
    (**(code **)(pcVar68 + 0x16670))(iStack_340);
    (**(code **)(pcVar68 + 0x16670))(iStack_350);
    preg = aVar60;
  }
  re_string_destruct((re_string_t *)&aStack_3c4);
LAB_00028eb4:
  if (pcStack_33c == (char *)**(int **)(pcVar68 + 0x16664)) {
    return prStack_460;
  }
  pcVar68 = *(code **)(pcVar68 + 0x16644);
  pattern = pcStack_33c;
  (*pcVar68)();
  syntax = **(reg_syntax_t **)(pcVar68 + 0x14ce8);
  *(byte *)(preg.sbcset + 7) =
       *(byte *)(preg.sbcset + 7) & 0xf6 | (byte)(((syntax << 6) >> 0x1f) << 3) | 1;
  rVar37 = re_compile_internal((regex_t *)preg.mbcset,pattern,aVar63.ctx_type,syntax);
  if (rVar37 == _REG_NOERROR) {
    prVar7 = (re_dfastate_t *)0x0;
  }
  else {
    prVar7 = (re_dfastate_t *)
             (**(code **)(pcVar68 + 0x14df4))
                       (0,*(int *)(pcVar68 + 0x14c04) + -0x3328 +
                          *(int *)(rVar37 * 4 + *(int *)(pcVar68 + 0x14c04) + -0x336c),5);
  }
  return prVar7;
code_r0x000291d8:
  if (aVar51.idx < aStack_3ec.idx) goto LAB_00028e48;
  goto LAB_000291e4;
LAB_00028e48:
  prStack_460 = (re_dfastate_t *)0x1;
  goto LAB_00028e84;
LAB_00028fb4:
  prStack_460 = (re_dfastate_t *)0xc;
  goto LAB_00028e84;
}



/* WARNING: Type propagation algorithm not settling */

code ******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)

{
  bool bVar1;
  code *******pppppppcVar2;
  code *******pppppppcVar3;
  code ******ppppppcVar4;
  code *****pppppcVar5;
  code *******pppppppcVar6;
  byte *pbVar7;
  int *piVar8;
  code *****pppppcVar9;
  uint uVar10;
  code *****pppppcVar11;
  code *****pppppcVar12;
  code *****pppppcVar13;
  int iVar14;
  code *****pppppcVar15;
  uint uVar16;
  int iVar17;
  code ******ppppppcVar18;
  bool bVar19;
  code cVar20;
  uint uVar21;
  code *******pppppppcVar22;
  uint uVar23;
  code ****ppppcVar24;
  code *******pppppppcVar25;
  code *******pppppppcVar26;
  code *******pppppppcVar27;
  code *******pppppppcVar28;
  code *******pppppppcVar29;
  code *****pppppcVar30;
  code *******pppppppcVar31;
  code *******pppppppcVar32;
  code *******pppppppcVar33;
  code *******pppppppcVar34;
  code *****pppppcVar35;
  code *******pppppppcVar36;
  code *******pppppppcVar37;
  code *******pppppppcVar38;
  code ******ppppppcVar39;
  code *******unaff_s4;
  int iVar40;
  code ******ppppppcVar41;
  code *******pppppppcVar42;
  code ******unaff_s6;
  code *******pppppppcVar43;
  code *******pppppppcVar44;
  undefined *puVar45;
  code *pcVar46;
  code *******unaff_s8;
  code *pcVar47;
  undefined4 uVar48;
  undefined8 uVar49;
  code *******pppppppcStack_460;
  code ******ppppppcStack_458;
  code *******pppppppcStack_454;
  code *******pppppppcStack_448;
  code *pcStack_428;
  code *******pppppppcStack_3ec;
  code *******pppppppcStack_3e8;
  code *******pppppppcStack_3e4;
  code *******pppppppcStack_3e0;
  code *******pppppppcStack_3dc;
  code ******ppppppcStack_3d8;
  code *******pppppppcStack_3d4;
  undefined4 uStack_3d0;
  undefined4 uStack_3cc;
  undefined4 uStack_3c8;
  code *******pppppppcStack_3c4;
  code *******pppppppcStack_3c0;
  int *piStack_3bc;
  int iStack_3b8;
  int iStack_3ac;
  code *******pppppppcStack_3a8;
  code *******pppppppcStack_3a4;
  uint uStack_3a0;
  code *******pppppppcStack_39c;
  code *******pppppppcStack_398;
  code *******pppppppcStack_394;
  code *******pppppppcStack_390;
  code *******pppppppcStack_38c;
  undefined4 uStack_388;
  code ******ppppppcStack_384;
  code *******pppppppcStack_380;
  byte bStack_37c;
  byte bStack_37b;
  byte bStack_37a;
  byte bStack_379;
  char cStack_378;
  byte bStack_377;
  byte bStack_376;
  code *******pppppppcStack_374;
  code *******pppppppcStack_370;
  code *******pppppppcStack_36c;
  code *******pppppppcStack_368;
  code ******ppppppcStack_364;
  code *******pppppppcStack_360;
  code *******pppppppcStack_35c;
  undefined4 uStack_358;
  uint uStack_354;
  int iStack_350;
  int iStack_34c;
  uint uStack_344;
  int iStack_340;
  code ****ppppcStack_33c;
  code *******pppppppcStack_338;
  code *******pppppppcStack_334;
  code *******pppppppcStack_330;
  code *******pppppppcStack_32c;
  code *******pppppppcStack_328;
  code *******pppppppcStack_324;
  code *******pppppppcStack_320;
  code *******pppppppcStack_31c;
  code *******pppppppcStack_318;
  code *pcStack_314;
  code *******pppppppcStack_308;
  code *******pppppppcStack_300;
  code *******pppppppcStack_2fc;
  code *******pppppppcStack_2f8;
  code *******pppppppcStack_2f4;
  code *******pppppppcStack_2f0;
  code *******pppppppcStack_2ec;
  code ******ppppppcStack_2e8;
  code *******pppppppcStack_2e4;
  code *******pppppppcStack_2e0;
  code ******ppppppcStack_2dc;
  code ******ppppppcStack_2d8;
  int iStack_2d4;
  code *******pppppppcStack_2cc;
  code ******ppppppcStack_2c8;
  undefined4 uStack_2c4;
  undefined4 uStack_2c0;
  code ******appppppcStack_2bc [12];
  code ******ppppppcStack_28c;
  code ******ppppppcStack_288;
  code ******ppppppcStack_284;
  code ******ppppppcStack_280;
  code ******appppppcStack_27c [4];
  code ******ppppppcStack_26c;
  code ******ppppppcStack_268;
  code ******ppppppcStack_264;
  code ******ppppppcStack_260;
  code *******pppppppcStack_25c;
  code *******pppppppcStack_258;
  code *******pppppppcStack_254;
  code *******pppppppcStack_250;
  code *******pppppppcStack_24c;
  code *******pppppppcStack_248;
  code *******pppppppcStack_244;
  code *******pppppppcStack_240;
  code *******pppppppcStack_23c;
  code *******pppppppcStack_238;
  undefined4 uStack_234;
  undefined4 uStack_220;
  code *******pppppppcStack_21c;
  code *pcStack_218;
  code *******pppppppcStack_210;
  code *pcStack_20c;
  code *******pppppppcStack_204;
  code *******pppppppcStack_200;
  code ******ppppppcStack_1fc;
  int iStack_1f8;
  int *piStack_1f4;
  code *******pppppppcStack_1f0;
  code *******apppppppcStack_1ec [6];
  int iStack_1d4;
  int iStack_1d0;
  int iStack_1cc;
  code *******pppppppcStack_1c4;
  code *******pppppppcStack_1c0;
  code *******pppppppcStack_1bc;
  code *******pppppppcStack_1b8;
  code *******pppppppcStack_1b0;
  undefined1 uStack_1a8;
  byte bStack_1a7;
  byte bStack_1a6;
  char cStack_1a5;
  code ******ppppppcStack_1a0;
  code *******pppppppcStack_19c;
  code *******pppppppcStack_198;
  code *******pppppppcStack_194;
  code *******pppppppcStack_190;
  code *******pppppppcStack_18c;
  code *******pppppppcStack_188;
  code *******pppppppcStack_184;
  code *******pppppppcStack_180;
  code ******ppppppcStack_17c;
  code *******pppppppcStack_178;
  code *pcStack_174;
  code *******pppppppcStack_160;
  code *******pppppppcStack_15c;
  code *pcStack_158;
  code *******pppppppcStack_150;
  int iStack_14c;
  code ******ppppppcStack_148;
  undefined4 uStack_144;
  undefined4 uStack_140;
  code *******pppppppcStack_13c;
  code *pcStack_138;
  code ******ppppppcStack_134;
  code *pcStack_130;
  code *pcStack_12c;
  code ******ppppppcStack_128;
  undefined4 uStack_124;
  undefined4 uStack_120;
  code *******pppppppcStack_11c;
  code *******pppppppcStack_118;
  code *******pppppppcStack_114;
  code *******pppppppcStack_110;
  code *******pppppppcStack_10c;
  code *******pppppppcStack_108;
  code *******pppppppcStack_104;
  code *******pppppppcStack_100;
  code ******ppppppcStack_fc;
  code *******pppppppcStack_f8;
  code *pcStack_f4;
  code *******pppppppcStack_e0;
  code *pcStack_dc;
  undefined *puStack_d8;
  code *******pppppppcStack_cc;
  code *******pppppppcStack_c8;
  code *******pppppppcStack_c4;
  code *pcStack_c0;
  code ******ppppppcStack_bc;
  code *pcStack_b8;
  code *******pppppppcStack_b4;
  code *******pppppppcStack_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  code *pcStack_a4;
  code *******pppppppcStack_a0;
  int iStack_9c;
  code *******pppppppcStack_94;
  code *******pppppppcStack_90;
  code *******pppppppcStack_8c;
  code *******pppppppcStack_88;
  code *******pppppppcStack_84;
  code ******ppppppcStack_80;
  code ******ppppppcStack_7c;
  code ******ppppppcStack_78;
  code *******pppppppcStack_74;
  code *******pppppppcStack_70;
  code *******pppppppcStack_6c;
  code *******pppppppcStack_68;
  code *******pppppppcStack_64;
  code *******pppppppcStack_60;
  int *piStack_5c;
  code ******ppppppcStack_58;
  code ******local_30;
  code ******local_2c;
  code ******local_28;
  code *******local_24;
  
  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;
  pppppppcVar36 = (code *******)param_2[10];
  pppppppcVar38 = (code *******)param_2[0x15];
  pppppppcVar26 = param_2;
  pppppppcVar6 = param_3;
  if ((int)param_2[0x1a] < (int)pppppppcVar36) {
    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;
    param_2[0x1a] = (code ******)pppppppcVar36;
LAB_00024fd0:
    ppppppcVar4 = pppppppcVar38[0x13];
LAB_00024fd4:
    pppppppcVar31 = param_3;
    if ((ppppppcVar4 != (code ******)0x0) &&
       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {
      pppppppcVar26 = pppppppcVar38;
      pppppppcVar31 = pppppppcVar36;
      iVar40 = FUN_0001a39c(param_2);
      *param_1 = iVar40;
      if (iVar40 == 0) {
        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {
          pppppppcVar26 = pppppppcVar38;
          iVar40 = FUN_00024660(param_2);
          *param_1 = iVar40;
          if (iVar40 == 0) {
            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];
          }
          else {
            pppppppcVar6 = (code *******)0x0;
          }
        }
      }
      else {
        pppppppcVar6 = (code *******)0x0;
      }
    }
  }
  else {
    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);
    if (*unaff_s4 == (code ******)0x0) {
      *unaff_s4 = (code ******)param_3;
      goto LAB_00024fd0;
    }
    pppppppcVar31 = (code *******)(*unaff_s4)[10];
    if (param_3 == (code *******)0x0) {
      local_30 = *pppppppcVar31;
      local_2c = pppppppcVar31[1];
      local_28 = pppppppcVar31[2];
      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);
      param_3 = &local_30;
      pppppppcVar26 = pppppppcVar38;
      pppppppcVar6 = (code *******)FUN_0001d798(param_1);
      *unaff_s4 = (code ******)pppppppcVar6;
      goto LAB_00024fd0;
    }
    unaff_s4 = (code *******)param_3[10];
    pppppppcVar26 = unaff_s4;
    iVar40 = FUN_0001ae50(&local_30);
    *param_1 = iVar40;
    if (iVar40 == 0) {
      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);
      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;
      param_3 = &local_30;
      pppppppcVar26 = pppppppcVar38;
      pppppppcVar6 = (code *******)FUN_0001d798(param_1);
      *unaff_s6 = (code *****)pppppppcVar6;
      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;
      (*(code *)PTR_free_0003e320)(local_28);
      ppppppcVar4 = pppppppcVar38[0x13];
      goto LAB_00024fd4;
    }
    pppppppcVar6 = (code *******)0x0;
  }
  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {
    return pppppppcVar6;
  }
  pppppppcVar42 = local_24;
  puVar45 = PTR___stack_chk_fail_0003e2f4;
  (*(code *)PTR___stack_chk_fail_0003e2f4)();
  puStack_d8 = puVar45 + 0x20ee4;
  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);
  pppppppcVar43 = (code *******)pppppppcVar42[0x15];
  pppppppcStack_94 = (code *******)0x0;
  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);
  pppppppcVar25 = pppppppcVar43;
  pppppppcVar27 = param_4;
  pppppppcVar28 = param_4;
  pppppppcStack_70 = param_2;
  pppppppcStack_6c = pppppppcVar6;
  pppppppcStack_68 = pppppppcVar36;
  pppppppcStack_64 = pppppppcVar38;
  pppppppcStack_60 = unaff_s4;
  piStack_5c = param_1;
  ppppppcStack_58 = unaff_s6;
  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {
    pppppppcVar6 = (code *******)0x0;
    if (param_4[1] != (code ******)0x0) {
      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;
      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);
      *ppppppcVar4 = pppppcVar5;
      pppppppcVar36 = pppppppcStack_94;
      puVar45 = puStack_d8;
      goto LAB_000253f8;
    }
LAB_000253c8:
    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;
    pppppppcVar25 = pppppppcVar26;
    if (pppppppcVar6 == (code *******)0x0) {
      pppppppcVar36 = (code *******)0x0;
      puVar45 = puStack_d8;
    }
    else {
LAB_000253d8:
      pppppppcVar36 = (code *******)0x0;
      puVar45 = puStack_d8;
      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {
        pppppppcVar25 = pppppppcVar31;
        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);
        pppppppcVar36 = (code *******)0x0;
        puVar45 = puStack_d8;
        if (pppppppcStack_a0 != (code *******)0xffffffff) {
          unaff_s8 = (code *******)pppppppcVar42[0x15];
          pppppppcStack_90 = (code *******)0x0;
          if ((int)pppppppcVar6[1] < 1) {
            pppppppcVar36 = (code *******)0x0;
          }
          else {
            iStack_9c = (int)pppppppcStack_a0 * 0x14;
            pppppppcStack_c4 = (code *******)0x0;
            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);
            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);
            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);
            do {
              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];
              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||
                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&
                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {
                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);
                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);
                pppppppcStack_c8 = pppppppcStack_a0;
                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);
                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);
                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);
                do {
                  param_4 = pppppppcVar36;
                  if (pppppppcVar43 == (code *******)*param_4) {
                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));
                    if ((int)param_4[3] - (int)param_4[2] == 0) {
                      pppppppcStack_cc =
                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));
                    }
                    else {
                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);
                    }
                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&
                        (pppppppcVar25 = pppppppcStack_cc,
                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&
                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),
                       puVar45 = puStack_d8, iVar40 != 0)) {
                      pppppppcVar25 = pppppppcVar26 + 4;
                      pppppppcStack_e0 = pppppppcStack_cc;
                      pppppppcVar27 = pppppppcVar43;
                      pppppppcVar28 = pppppppcVar31;
                      pcStack_dc = pcVar46;
                      pppppppcStack_b0 = pppppppcVar25;
                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);
                      puVar45 = puStack_d8;
                      if (iVar40 == 0) {
                        if (pppppppcStack_90 == (code *******)0x0) {
                          pppppppcStack_90 = (code *******)*pppppppcVar26;
                          pppppppcVar28 = (code *******)pppppppcVar26[1];
                          pppppppcVar27 = (code *******)pppppppcVar26[2];
                          pppppppcStack_84 = (code *******)pppppppcVar26[3];
                          ppppppcStack_80 = pppppppcVar26[4];
                          ppppppcStack_7c = pppppppcVar26[5];
                          ppppppcStack_78 = pppppppcVar26[6];
                          pppppppcVar25 = pppppppcStack_b0;
                          pppppppcStack_8c = pppppppcVar28;
                          pppppppcStack_88 = pppppppcVar27;
                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);
                          puVar45 = puStack_d8;
                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;
                        }
                        pppppppcVar25 = pppppppcStack_c8;
                        pppppppcStack_88 = pppppppcVar43;
                        pppppppcStack_84 = pppppppcVar31;
                        iVar40 = FUN_00019e64(&ppppppcStack_80);
                        if (iVar40 == 0) {
                          pppppppcVar36 = (code *******)0xc;
                          puVar45 = puStack_d8;
                          goto LAB_00025aa0;
                        }
                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];
                        pppppppcVar25 = (code *******)&pppppppcStack_90;
                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);
                        puVar45 = puStack_d8;
                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;
                        pppppppcVar25 = (code *******)pppppppcVar26[1];
                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);
                        if ((pppppppcVar25 != (code *******)0x0) &&
                           (pppppppcVar27 = pppppppcStack_90,
                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),
                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))
                        goto LAB_00025aa0;
                        pppppppcVar36 = pppppppcStack_c8;
                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;
                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);
                        pppppppcVar25 = (code *******)(iVar40 + -1);
                        FUN_000188ac(&ppppppcStack_80);
                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);
                        puVar45 = puStack_d8;
                      }
                    }
                  }
                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);
                  pppppppcVar36 = param_4 + 5;
                } while (*(code *)(param_4 + 4) != (code)0x0);
              }
              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);
              pppppppcVar36 = (code *******)0x0;
            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);
LAB_00025aa0:
            if (pppppppcStack_90 != (code *******)0x0) {
              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);
              puVar45 = puStack_d8;
            }
          }
        }
      }
    }
  }
  else {
    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);
    pppppppcVar27 = pppppppcVar31;
    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;
    pppppppcStack_90 = (code *******)0x0;
    pppppppcVar27 = param_4;
    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);
    pppppppcVar36 = pppppppcStack_90;
    puVar45 = puStack_d8;
    if (pppppppcStack_90 == (code *******)0x0) {
      pppppppcVar27 = unaff_s8 + 7;
      if (unaff_s8[7] == (code ******)0x0) {
        pppppppcStack_cc = unaff_s8 + 7;
        pppppppcVar25 = (code *******)param_4[1];
        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);
        if (pppppppcStack_90 != (code *******)0x0) {
          pppppppcVar36 = (code *******)0xc;
          puVar45 = puStack_d8;
          goto LAB_000253f8;
        }
        if (0 < (int)param_4[1]) {
          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);
          iVar40 = 0;
          do {
            pppppppcStack_90 = (code *******)0x0;
            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);
            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);
            if (pppppppcStack_90 != (code *******)0x0) {
              pppppppcVar36 = (code *******)0xc;
              puVar45 = puStack_d8;
              goto LAB_000253f8;
            }
            iVar40 = iVar40 + 1;
          } while (iVar40 < (int)param_4[1]);
        }
      }
      pppppppcVar27 = unaff_s8 + 7;
      pppppppcVar25 = pppppppcVar6;
      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);
      puVar45 = puStack_d8;
      pppppppcStack_b4 = pppppppcVar36;
      pppppppcStack_94 = pppppppcVar36;
      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;
      if (pppppppcVar26[5] != (code ******)0x0) {
        ppppppcStack_bc = pppppppcVar42[0x1d];
        if (0 < (int)pppppppcVar26[5]) {
          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);
          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);
          pppppppcStack_cc = (code *******)0x0;
          do {
            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;
            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&
               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {
              pppppppcVar28 = (code *******)*pppppppcVar43;
              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];
              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {
                if (0 < (int)param_4[1]) {
                  ppppppcVar41 = param_4[2];
                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];
                  pppppppcStack_c4 = (code *******)0xffffffff;
                  pppppppcVar25 = (code *******)0xffffffff;
                  do {
                    pppppppcVar38 = (code *******)*ppppppcVar41;
                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;
                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {
                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {
                        pppppppcVar25 = pppppppcVar38;
                      }
                    }
                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&
                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {
                      pppppppcStack_c4 = pppppppcVar38;
                    }
                    ppppppcVar41 = ppppppcVar41 + 1;
                  } while (ppppppcVar41 != ppppppcVar39);
                  if ((int)pppppppcVar25 < 0) {
                    unaff_s8 = pppppppcStack_b4;
                    if (-1 < (int)pppppppcStack_c4) {
                      do {
                        ppppppcVar41 = param_4[2];
LAB_00025600:
                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];
                        pppppppcStack_c8 = pppppppcVar36;
                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,
                                               pppppppcStack_c4);
                        if ((iVar40 == 0) &&
                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,
                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,
                           iVar40 == 0)) {
                          pppppppcVar25 = pppppppcStack_c8;
                          pppppppcVar27 = param_4;
                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);
                          puVar45 = puStack_d8;
                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;
                          unaff_s8 = (code *******)((int)unaff_s8 + -1);
                        }
                        unaff_s8 = (code *******)((int)unaff_s8 + 1);
                      } while ((int)unaff_s8 < (int)param_4[1]);
                    }
                  }
                  else {
                    pppppppcVar27 = param_4;
                    pppppppcVar28 = pppppppcVar6;
                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);
                    puVar45 = puStack_d8;
                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;
                    if ((-1 < (int)pppppppcStack_c4) &&
                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {
                      ppppppcVar41 = param_4[2];
                      goto LAB_00025600;
                    }
                  }
                }
              }
              else {
                unaff_s8 = pppppppcStack_b4;
                if (0 < (int)param_4[1]) {
                  do {
                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];
                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&
                        (pppppppcVar28 = pppppppcVar6,
                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))
                       && (pppppppcVar27 = param_4,
                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),
                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))
                    goto LAB_000253f8;
                    unaff_s8 = (code *******)((int)unaff_s8 + 1);
                  } while ((int)unaff_s8 < (int)param_4[1]);
                }
              }
            }
            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);
          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);
        }
        pppppppcStack_94 = (code *******)0x0;
      }
      ppppppcVar41 = *pppppppcVar26;
      pppppppcVar25 = pppppppcVar43;
      pppppppcVar27 = param_4;
      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);
      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;
      pppppppcVar36 = pppppppcStack_94;
      puVar45 = puStack_d8;
      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;
      goto LAB_000253d8;
    }
  }
LAB_000253f8:
  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {
    return pppppppcVar36;
  }
  pcVar46 = *(code **)(puVar45 + -0x7ddc);
  pcVar47 = FUN_00025af4;
  pppppppcVar38 = pppppppcStack_74;
  (*pcVar46)();
  pcStack_f4 = pcVar47;
  pppppppcStack_f8 = unaff_s8;
  ppppppcStack_fc = ppppppcVar4;
  pppppppcStack_100 = pppppppcVar43;
  pppppppcStack_104 = pppppppcVar42;
  pppppppcStack_108 = pppppppcVar36;
  pppppppcStack_10c = pppppppcVar6;
  pppppppcStack_110 = pppppppcVar31;
  pppppppcStack_114 = param_4;
  pppppppcStack_118 = pppppppcVar26;
  pcStack_158 = pcVar46 + 0x205dc;
  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);
  pppppppcVar31 = (code *******)pppppppcVar25[3];
  pppppppcVar26 = (code *******)pppppppcVar25[2];
  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);
  if (pppppppcVar6 == (code *******)0x0) {
    pppppppcVar28 = &ppppppcStack_128;
    pppppppcVar26 = pppppppcVar25;
    pppppppcVar27 = pppppppcVar31;
    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);
    pppppppcVar6 = pppppppcStack_13c;
    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {
      pppppppcStack_150 = pppppppcStack_13c;
      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);
      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);
      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);
      do {
        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);
        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {
          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);
        }
        else {
          pppppppcStack_150 = pppppppcStack_13c;
        }
        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {
          pppppppcVar26 = (code *******)0x0;
          pppppppcVar27 = unaff_s8;
          (**(code **)(pcStack_158 + -0x7e40))();
          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);
          pppppppcVar6 = pppppppcStack_13c;
          goto LAB_00025e98;
        }
        uStack_124 = 0;
        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));
        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);
        if ((ppppppcVar4 != (code ******)0x0) &&
           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {
          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);
          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);
          pppppppcVar43 = pppppppcStack_13c;
          do {
            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];
            iStack_14c = (int)pppppppcVar26 * 8;
            pppppppcVar28 = pppppppcVar31;
            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {
LAB_00025d44:
              pppppppcVar27 = pppppppcVar31;
              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);
              if ((iVar40 != 0) &&
                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {
                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,
                                        pppppppcVar42[3][(int)pppppppcVar26]);
                pppppppcVar36 = (code *******)0x1;
                if (iVar40 != 0) {
                  ppppppcVar41 = pppppppcVar25[5];
                  goto LAB_00025c9c;
                }
              }
            }
            else {
              ppppppcStack_148 = pppppppcVar25[3];
              ppppppcStack_134 = pppppppcVar38[0x15];
              pppppppcVar27 = pppppppcVar38;
              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);
              if ((int)pppppppcVar36 < 1) {
                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;
                ppppppcVar41 = pppppppcVar25[5];
              }
              else {
                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&
                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==
                     (code *****)0x0 ||
                    (iVar40 = (*pcStack_138)((*pppppppcVar25)
                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,
                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))
                   )) goto LAB_00025d44;
                ppppppcVar41 = pppppppcVar25[5];
              }
LAB_00025c9c:
              if (ppppppcVar41 != (code ******)0x0) {
                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];
                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);
                pppppppcStack_160 = pppppppcVar26;
                pppppppcStack_15c = pppppppcVar31;
                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);
                if (iVar40 != 0) goto LAB_00025cfc;
              }
              iVar40 = (*pcStack_130)(&ppppppcStack_128);
              if (iVar40 == 0) {
                pppppppcVar6 = (code *******)0xc;
                goto LAB_00025e84;
              }
            }
LAB_00025cfc:
            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);
          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);
        }
        pppppppcVar28 = &ppppppcStack_128;
        pppppppcVar26 = pppppppcVar25;
        pppppppcVar27 = pppppppcVar31;
        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);
      } while ((pppppppcVar6 == (code *******)0x0) &&
              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));
    }
LAB_00025e84:
    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);
  }
LAB_00025e98:
  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {
    return pppppppcVar6;
  }
  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);
  pcVar47 = FUN_00025ee8;
  pppppppcVar34 = pppppppcStack_11c;
  (*pcVar46)();
  pcStack_218 = pcVar46 + 0x201e8;
  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);
  pppppppcStack_204 = (code *******)0x0;
  pppppppcVar34[3] = (code ******)pppppppcVar28;
  pppppppcVar34[2] = (code ******)0x0;
  pppppppcVar34[6] = (code ******)0x0;
  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;
  pppppppcVar32 = (code *******)*pppppppcVar34;
  pppppppcVar29 = pppppppcVar28;
  pppppppcStack_198 = pppppppcVar31;
  pppppppcStack_194 = pppppppcVar38;
  pppppppcStack_190 = pppppppcVar25;
  pppppppcStack_18c = pppppppcVar6;
  pppppppcStack_188 = pppppppcVar36;
  pppppppcStack_184 = pppppppcVar42;
  pppppppcStack_180 = pppppppcVar43;
  ppppppcStack_17c = ppppppcVar4;
  pppppppcStack_178 = unaff_s8;
  pcStack_174 = pcVar47;
  if (pppppppcVar34[1] < (code ******)0x88) {
    pppppppcVar38 = (code *******)0x88;
    pppppppcVar36 = pppppppcVar27;
    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);
    if (pppppppcVar32 != (code *******)0x0) {
      pppppppcVar34[1] = (code ******)0x88;
      *pppppppcVar34 = (code ******)pppppppcVar32;
      goto LAB_00025f80;
    }
    pppppppcVar31 = (code *******)0xc;
  }
  else {
LAB_00025f80:
    pppppppcVar34[2] = (code ******)0x88;
    pppppppcVar36 = (code *******)0x88;
    pppppppcVar38 = (code *******)0x0;
    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);
    pppppppcVar32[0x10] = (code ******)0x1f;
    if (pppppppcVar27 < (code *******)0xaaaaaaa) {
      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);
      ppppppcVar4 = (code ******)
                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);
      *pppppppcVar32 = ppppppcVar4;
      if (pppppppcVar27 == (code *******)0x0) {
        pppppppcVar6 = (code *******)0x1;
      }
      else {
        pppppppcVar6 = (code *******)0x1;
        do {
          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);
        } while (pppppppcVar6 <= pppppppcVar27);
      }
      pppppppcVar38 = pppppppcVar6;
      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);
      pppppppcVar32[8] = ppppppcVar4;
      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);
      pppppppcVar32[0x11] = (code ******)pppppppcVar6;
      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();
      pppppppcVar32[0x17] = ppppppcVar4;
      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);
      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&
         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {
        iVar40 = 3;
        if (pbVar7[3] == 0x2d) {
          iVar40 = 4;
        }
        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);
        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);
        if (iVar40 == 0) {
          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;
        }
      }
      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;
      if (1 < (int)pppppppcVar32[0x17]) {
        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {
          pppppppcVar38 = (code *******)0x1;
          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);
          pppppppcVar32[0xf] = ppppppcVar4;
          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;
          pppppppcVar42 = (code *******)0x0;
          unaff_s8 = (code *******)0x1;
          do {
            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);
            uVar21 = 0;
            do {
              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);
              if (pppppppcVar31 != (code *******)0xffffffff) {
                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);
                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =
                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);
              }
              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {
                *(byte *)(pppppppcVar32 + 0x16) =
                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;
              }
              uVar21 = uVar21 + 1;
              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);
            } while (uVar21 != 0x20);
            pppppppcVar42 = pppppppcVar42 + 1;
            pppppppcVar43 = (code *******)0x20;
          } while (pppppppcVar42 != (code *******)0x20);
        }
        else {
          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);
        }
      }
      if ((*pppppppcVar32 != (code ******)0x0) &&
         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {
        pppppppcStack_204 = (code *******)0x0;
        pppppppcVar43 = (code *******)pppppppcVar34[5];
        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);
        bVar19 = pppppppcVar42 != (code *******)0x0;
        unaff_s8 = (code *******)(uint)bVar19;
        pppppppcVar36 = (code *******)0x4c;
        pppppppcVar38 = (code *******)0x0;
        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);
        if (pppppppcVar43 != (code *******)0x0) {
          unaff_s8 = (code *******)0x1;
        }
        cStack_1a5 = (char)unaff_s8;
        ppppppcStack_1a0 = pppppppcVar32[0x17];
        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);
        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);
        pppppppcStack_1f0 = pppppppcVar26;
        pppppppcStack_1c4 = pppppppcVar27;
        pppppppcStack_1c0 = pppppppcVar27;
        pppppppcStack_1bc = pppppppcVar27;
        pppppppcStack_1b8 = pppppppcVar27;
        pppppppcStack_1b0 = pppppppcVar43;
        uStack_1a8 = bVar19;
        if (0 < (int)pppppppcVar27) {
          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);
          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);
          pppppppcVar31 = pppppppcVar27;
          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;
          goto LAB_000261b4;
        }
LAB_00026118:
        if (cStack_1a5 != '\0') {
          pppppppcVar26 = apppppppcStack_1ec[0];
        }
        apppppppcStack_1ec[0] = pppppppcVar26;
        if (pppppppcVar42 == (code *******)0x0) {
          if ((int)pppppppcVar32[0x17] < 2) {
            if (pppppppcVar43 != (code *******)0x0) {
              FUN_00018720();
            }
          }
          else {
            FUN_0001a644(&pppppppcStack_1f0);
          }
        }
        else {
          if (1 < (int)pppppppcVar32[0x17]) {
            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);
            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);
            do {
              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);
              pppppppcVar31 = (code *******)&pppppppcStack_1f0;
              if (pppppppcVar25 != (code *******)0x0) break;
              if (((int)pppppppcVar27 <= iStack_1d0) ||
                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),
                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;
              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);
            } while (pppppppcVar25 == (code *******)0x0);
            goto LAB_000261b4;
          }
          FUN_0001a578(&pppppppcStack_1f0);
        }
LAB_000263f8:
        pppppppcStack_204 = (code *******)0x0;
        pppppppcVar34[6] = (code ******)0x0;
        pppppppcVar43 = (code *******)*pppppppcVar34;
        pppppppcVar43[0x20] = (code ******)pppppppcVar28;
        pppppppcVar31 = (code *******)&pppppppcStack_1f0;
        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);
        pppppppcStack_21c = (code *******)&pppppppcStack_204;
        uStack_220 = 0;
        pppppppcVar38 = pppppppcVar34;
        pppppppcVar6 = (code *******)
                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);
        pppppppcVar29 = (code *******)0x2;
        if (pppppppcStack_204 == (code *******)0x0) {
          pppppppcVar36 = (code *******)0x0;
          pppppppcVar38 = (code *******)0x0;
          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);
          pppppppcVar31 = pppppppcVar27;
          if (pppppppcVar6 != (code *******)0x0) {
LAB_000264d8:
            pppppppcVar29 = (code *******)0x10;
            pppppppcVar38 = pppppppcVar6;
            pppppppcVar36 = pppppppcVar27;
            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);
          }
          if ((pppppppcVar27 == (code *******)0x0) ||
             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {
            pppppppcStack_204 = (code *******)0xc;
            goto LAB_0002671c;
          }
          pppppppcVar32[0xd] = (code ******)pppppppcVar31;
          pppppppcVar27 = (code *******)*pppppppcVar34;
          ppppppcVar4 = pppppppcVar27[1];
          iVar40 = (int)ppppppcVar4 << 2;
          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);
          pppppppcVar27[3] = (code ******)pppppppcVar28;
          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);
          pppppppcVar27[4] = (code ******)pppppppcVar43;
          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);
          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);
          pppppppcVar27[5] = (code ******)pppppppcVar26;
          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);
          pppppppcVar27[6] = ppppppcVar4;
          pppppppcVar31 = pppppppcVar27;
          if (pppppppcVar28 == (code *******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else if (pppppppcVar43 == (code *******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else if (pppppppcVar26 == (code *******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else if (ppppppcVar4 == (code ******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else {
            ppppppcVar4 = (code ******)
                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);
            pppppppcVar27[0x21] = ppppppcVar4;
            if (ppppppcVar4 != (code ******)0x0) {
              ppppppcVar4 = (code ******)0x0;
              if (pppppppcVar34[6] != (code ******)0x0) {
                do {
                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;
                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);
                } while (ppppppcVar4 < pppppppcVar34[6]);
              }
              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,
                           pppppppcVar27);
              ppppppcVar4 = pppppppcVar34[6];
              if (ppppppcVar4 == (code ******)0x0) {
LAB_0002672c:
                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);
                pppppppcVar27[0x21] = (code ******)0x0;
              }
              else {
                ppppppcVar41 = pppppppcVar27[0x21];
                if (*ppppppcVar41 == (code *****)0x0) {
                  ppppppcVar39 = (code ******)0x0;
                  do {
                    ppppppcVar41 = ppppppcVar41 + 1;
                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);
                    if (ppppppcVar4 == ppppppcVar39) {
                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;
                      break;
                    }
                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);
                }
              }
            }
            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);
            pppppppcVar25 =
                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);
            pppppppcVar36 = pppppppcVar27;
            if (pppppppcVar25 == (code *******)0x0) {
              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);
              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);
              if (pppppppcVar25 == (code *******)0x0) {
                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);
                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);
                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);
                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);
                pppppppcVar25 = pppppppcVar26;
                if (pppppppcVar26 == (code *******)0x0) {
                  pppppppcVar43 = (code *******)0x0;
                  unaff_s8 = &ppppppcStack_1fc;
                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);
                  pppppppcVar6 = (code *******)0x0;
                  pcVar46 = pcStack_218;
LAB_0002676c:
                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {
LAB_00026778:
                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);
                    pppppppcVar29 = (code *******)0x1;
                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==
                        (code *****)0x0) {
                      pppppppcVar38 = pppppppcVar27;
                      pppppppcVar36 = pppppppcVar6;
                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);
                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;
                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);
                      pcVar46 = pcStack_218;
                      if (pppppppcVar28[1] == (code ******)0x0) {
                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);
                        pppppppcVar43 = (code *******)0x1;
                        pcVar46 = pcStack_218;
                      }
                    }
                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);
                    goto LAB_0002676c;
                  }
                  if (pppppppcVar43 != (code *******)0x0) {
                    pppppppcVar43 = (code *******)0x0;
                    pppppppcVar6 = (code *******)0x0;
                    goto LAB_00026778;
                  }
                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&
                      (pppppppcVar34[6] != (code ******)0x0)) &&
                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {
                    pppppppcVar6 = (code *******)pppppppcVar27[2];
                  }
                  else {
                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;
                    pppppppcVar6 = (code *******)pppppppcVar27[2];
                  }
                  ppppppcVar4 = (code ******)
                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);
                  pppppppcVar27[7] = ppppppcVar4;
                  if (ppppppcVar4 == (code ******)0x0) {
                    pppppppcVar25 = (code *******)0xc;
                    goto LAB_000261b4;
                  }
                  pcVar46 = pcStack_218;
                  if (pppppppcVar6 != (code *******)0x0) {
                    iVar40 = 0;
                    ppppppcVar4 = (code ******)0x0;
                    do {
                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);
                      *pcVar47 = (code)0x0;
                      pcVar47[1] = (code)0x0;
                      pcVar47[2] = (code)0x0;
                      pcVar47[3] = (code)0x0;
                      pcVar47[4] = (code)0x0;
                      pcVar47[5] = (code)0x0;
                      pcVar47[6] = (code)0x0;
                      pcVar47[7] = (code)0x0;
                      pcVar47[8] = (code)0x0;
                      pcVar47[9] = (code)0x0;
                      pcVar47[10] = (code)0x0;
                      pcVar47[0xb] = (code)0x0;
                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);
                      iVar40 = iVar40 + 0xc;
                    } while (ppppppcVar4 < pppppppcVar27[2]);
                    if (pppppppcVar27[2] != (code ******)0x0) {
                      unaff_s8 = (code *******)0x0;
                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);
                      pppppppcStack_210 = (code *******)0x0;
                      do {
                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))
                        ;
                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {
                          pppppppcVar28 = (code *******)0x0;
                          do {
                            pppppppcVar38 = pppppppcStack_210;
                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);
                            pppppppcVar25 = (code *******)0xc;
                            if (iVar40 == 0) goto LAB_000261b4;
                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);
                            pppppppcVar6 = pppppppcVar6 + 1;
                            pcVar46 = pcStack_218;
                          } while ((int)pppppppcVar28 <
                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));
                        }
                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);
                        unaff_s8 = unaff_s8 + 3;
                      } while (pppppppcStack_210 < pppppppcVar27[2]);
                    }
                  }
LAB_00026918:
                  pppppppcStack_204 = (code *******)0x0;
                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&
                      (pppppppcVar42 == (code *******)0x0)) &&
                     (pppppppcVar34[5] == (code ******)0x0)) {
                    pppppppcVar6 = pppppppcVar43;
                    if (pppppppcVar32[2] != (code ******)0x0) {
                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);
                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00026a88. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                        pppppppcVar26 =
                             (code *******)
                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();
                        return pppppppcVar26;
                      }
                      (**(code **)(pcVar46 + -0x7ea4))(0);
                      if (pppppppcVar6 != (code *******)0x0) {
                        pppppppcVar36 = (code *******)0x7;
                        pppppppcVar26 = (code *******)0x0;
                        do {
                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;
                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {
                            if (*(char *)ppppppcVar4 < '\0') {
                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);
                            }
                          }
                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {
                            *(char *)(ppppppcVar4 + 1) = '\a';
                          }
                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);
                        } while (pppppppcVar26 < pppppppcVar32[2]);
                      }
                    }
                    pppppppcVar32[0x17] = (code ******)0x1;
                    if (0 < (int)pppppppcVar32[0x13]) {
                      pppppppcVar6 = (code *******)0x1;
                    }
                    *(byte *)(pppppppcVar32 + 0x16) =
                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |
                         (byte)(((uint)pppppppcVar6 & 1) << 6);
                  }
                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];
                  pppppppcVar32[0x12] = ppppppcVar4;
                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);
                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);
                  pppppppcVar6 = pppppppcVar31;
                  pppppppcStack_200 = pppppppcVar31;
                  if (pppppppcVar31 == (code *******)0x0) {
                    if ((0 < (int)pppppppcVar32[0x13]) &&
                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {
                      pppppppcVar42 = &ppppppcStack_1fc;
                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);
                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);
                      pppppppcVar27 = (code *******)0x0;
                      do {
                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];
                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);
                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {
                          iVar40 = 0;
                          piVar8 = piStack_1f4;
                          if (iStack_1f8 < 1) {
LAB_00026bb4:
                            if (iVar40 != iStack_1f8) {
                              pppppppcVar26 =
                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];
                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);
                              if (iVar40 == 0) {
                                pppppppcVar38 =
                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);
                                pppppppcVar27 =
                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);
                                pppppppcVar6 = pppppppcVar27;
                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;
                              }
                            }
                          }
                          else {
                            do {
                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;
                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&
                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;
                              iVar40 = iVar40 + 1;
                              piVar8 = piVar8 + 1;
                            } while (iStack_1f8 != iVar40);
                          }
                        }
                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);
                      } while ((int)pppppppcVar27 < iStack_1f8);
                    }
                    pppppppcVar29 = (code *******)0x0;
                    pppppppcVar36 = &ppppppcStack_1fc;
                    pppppppcVar38 = pppppppcVar32;
                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);
                    pppppppcVar32[9] = ppppppcVar4;
                    pppppppcVar6 = pppppppcStack_200;
                    if (ppppppcVar4 != (code ******)0x0) {
                      pppppppcVar29 = (code *******)0x1;
                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {
                        pppppppcVar32[0xc] = ppppppcVar4;
                        pppppppcVar32[0xb] = ppppppcVar4;
                        pppppppcVar32[10] = ppppppcVar4;
                      }
                      else {
                        pppppppcVar42 = &ppppppcStack_1fc;
                        pppppppcVar28 = (code *******)&pppppppcStack_200;
                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);
                        ppppppcVar4 = (code ******)
                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);
                        pppppppcVar32[10] = ppppppcVar4;
                        ppppppcVar4 = (code ******)
                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);
                        pppppppcVar32[0xb] = ppppppcVar4;
                        pppppppcVar29 = (code *******)0x6;
                        pppppppcVar38 = pppppppcVar32;
                        pppppppcVar36 = pppppppcVar42;
                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);
                        pppppppcVar32[0xc] = ppppppcVar4;
                        pppppppcVar6 = pppppppcStack_200;
                        if (((pppppppcVar32[10] == (code ******)0x0) ||
                            (pppppppcVar32[0xb] == (code ******)0x0)) ||
                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;
                      }
                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);
                      pppppppcVar6 = pppppppcVar31;
                    }
                  }
LAB_00026ce0:
                  pppppppcStack_204 = pppppppcVar6;
                  FUN_0001db98(pppppppcVar34);
                  FUN_0001dc20(&pppppppcStack_1f0);
                  pppppppcVar31 = pppppppcStack_204;
                  if (pppppppcStack_204 != (code *******)0x0) {
                    FUN_0001dc9c(pppppppcVar32);
                    *pppppppcVar34 = (code ******)0x0;
                    pppppppcVar34[1] = (code ******)0x0;
                    pppppppcVar31 = pppppppcStack_204;
                  }
                  goto LAB_00026d24;
                }
              }
            }
          }
        }
        else {
          pppppppcVar36 = (code *******)0x0;
          if (pppppppcVar6 != (code *******)0x0) {
            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);
            goto LAB_000264d8;
          }
LAB_0002671c:
          pppppppcVar32[0xd] = (code ******)0x0;
          pppppppcVar25 = pppppppcStack_204;
        }
LAB_000261b4:
        pppppppcStack_204 = pppppppcVar25;
        pppppppcVar27 = pppppppcVar31;
        FUN_0001db98(pppppppcVar34);
        FUN_0001dc20(&pppppppcStack_1f0);
        FUN_0001dc9c(pppppppcVar32);
        *pppppppcVar34 = (code ******)0x0;
        pppppppcVar34[1] = (code ******)0x0;
        pppppppcVar31 = pppppppcStack_204;
        goto LAB_00026d24;
      }
    }
LAB_00026e64:
    pppppppcStack_204 = (code *******)0xc;
    FUN_0001dc9c(pppppppcVar32);
    *pppppppcVar34 = (code ******)0x0;
    pppppppcVar34[1] = (code ******)0x0;
    pppppppcVar31 = pppppppcStack_204;
  }
LAB_00026d24:
  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {
    return pppppppcVar31;
  }
  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);
  uVar48 = 0x26e9c;
  pppppppcVar31 = pppppppcStack_19c;
  (*pcVar46)();
  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);
  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);
  pppppppcVar25 = pppppppcVar38;
  pppppppcStack_258 = pppppppcVar32;
  pppppppcStack_254 = pppppppcVar34;
  pppppppcStack_250 = pppppppcVar27;
  pppppppcStack_24c = pppppppcVar6;
  pppppppcStack_248 = pppppppcVar28;
  pppppppcStack_244 = pppppppcVar42;
  pppppppcStack_240 = pppppppcVar43;
  pppppppcStack_23c = pppppppcVar26;
  pppppppcStack_238 = unaff_s8;
  uStack_234 = uVar48;
  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);
  if (pppppppcStack_2ec == (code *******)0x0) {
    pppppppcVar43 = (code *******)0x0;
  }
  else {
    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;
    pppppppcVar38[0xb] = (code ******)0x0;
    pppppppcVar38[0xc] = (code ******)0x0;
    pppppppcStack_2e4 = pppppppcStack_2ec;
    FUN_0001a53c(appppppcStack_2bc);
    pppppppcVar43 = pppppppcStack_300;
    if ((int)pppppppcVar38[2] < 1) {
      pppppppcVar27 = (code *******)0x0;
    }
    else {
      pppppppcVar27 = (code *******)0x0;
      pppppppcStack_2f4 = (code *******)0x0;
      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;
      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;
      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;
      do {
        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);
        pppppppcVar6 = (code *******)
                       (*pppppppcVar31 +
                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);
        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);
        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);
        if (pppppppcVar26 == (code *******)0x1) {
          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);
          pppppppcVar43 = pppppppcStack_300;
LAB_00026f88:
          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;
          if (((uint)pppppppcVar32 & 0x20) != 0) {
            pppppppcVar34 = appppppcStack_2bc;
            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);
            FUN_0001a53c(pppppppcVar34);
            pppppppcVar43 = pppppppcStack_300;
            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;
            FUN_00018540(appppppcStack_2bc,10);
            pppppppcVar43 = pppppppcStack_300;
          }
          if (((uint)pppppppcVar32 & 0x80) == 0) {
            if (((uint)pppppppcVar32 & 4) == 0) {
LAB_0002700c:
              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);
              if (pppppppcVar32 == (code *******)0x0) {
LAB_00027078:
                if ((int)pppppppcVar27 < 1) {
                  pppppppcVar34 = (code *******)0x0;
                }
                else {
                  pppppppcVar32 = pppppppcStack_2ec + 0x300;
                  pppppppcVar34 = (code *******)0x0;
                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];
                  pppppppcVar42 = pppppppcStack_2ec;
                  do {
                    if ((pppppppcVar26 != (code *******)0x1) ||
                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),
                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {
                      pppppppcVar37 = appppppcStack_2bc;
                      uVar21 = 0;
                      pppppppcVar25 = pppppppcVar37;
                      pppppppcVar36 = pppppppcVar32;
                      pppppppcVar29 = appppppcStack_2bc + 8;
                      do {
                        ppppppcVar4 = *pppppppcVar25;
                        ppppppcVar41 = *pppppppcVar36;
                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);
                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;
                        pppppppcVar25 = pppppppcVar25 + 1;
                        pppppppcVar36 = pppppppcVar36 + 1;
                        pppppppcVar29 = pppppppcVar29 + 1;
                      } while (pppppppcVar25 != appppppcStack_2bc + 8);
                      if (uVar21 != 0) {
                        pppppppcVar36 = appppppcStack_27c;
                        pppppppcVar28 = (code *******)0x0;
                        uVar21 = 0;
                        pppppppcVar43 = pppppppcVar32;
                        do {
                          pppppppcVar29 = (code *******)*pppppppcVar37;
                          ppppppcVar4 = *pppppppcVar43;
                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);
                          *pppppppcVar36 = ppppppcVar41;
                          uVar21 = uVar21 | (uint)ppppppcVar41;
                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);
                          *pppppppcVar37 = ppppppcVar4;
                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);
                          pppppppcVar37 = pppppppcVar37 + 1;
                          pppppppcVar43 = pppppppcVar43 + 1;
                          pppppppcVar36 = pppppppcVar36 + 1;
                        } while (pppppppcVar43 != pppppppcVar32 + 8);
                        if (uVar21 != 0) {
                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;
                          *pppppppcVar43 = appppppcStack_27c[0];
                          pppppppcVar43[1] = appppppcStack_27c[1];
                          pppppppcVar43[2] = appppppcStack_27c[2];
                          pppppppcVar43[3] = appppppcStack_27c[3];
                          pppppppcVar43[4] = ppppppcStack_26c;
                          pppppppcVar43[5] = ppppppcStack_268;
                          pppppppcVar43[6] = ppppppcStack_264;
                          pppppppcVar43[7] = ppppppcStack_260;
                          *pppppppcVar32 = appppppcStack_2bc[8];
                          pppppppcVar32[1] = appppppcStack_2bc[9];
                          pppppppcVar32[2] = appppppcStack_2bc[10];
                          pppppppcVar32[3] = appppppcStack_2bc[0xb];
                          pppppppcVar32[4] = ppppppcStack_28c;
                          pppppppcVar32[5] = ppppppcStack_288;
                          pppppppcVar32[6] = ppppppcStack_284;
                          pppppppcVar32[7] = ppppppcStack_280;
                          iVar40 = (*(code *)ppppppcStack_2dc)
                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,
                                              pppppppcVar42);
                          if (iVar40 != 0) goto LAB_000275d4;
                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);
                        }
                        iVar40 = (*(code *)ppppppcStack_2e8)
                                           (pppppppcVar42,
                                            *(undefined4 *)
                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));
                        if (iVar40 == 0) goto LAB_000275d4;
                        pppppppcVar43 = pppppppcStack_300;
                        if (pppppppcVar28 == (code *******)0x0) break;
                      }
                    }
                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);
                    pppppppcVar32 = pppppppcVar32 + 8;
                    pppppppcVar42 = pppppppcVar42 + 3;
                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);
                }
                if (pppppppcVar27 == pppppppcVar34) {
                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;
                  *pppppppcVar43 = appppppcStack_2bc[0];
                  pppppppcVar43[1] = appppppcStack_2bc[1];
                  pppppppcVar43[2] = appppppcStack_2bc[2];
                  pppppppcVar43[3] = appppppcStack_2bc[3];
                  pppppppcVar43[4] = appppppcStack_2bc[4];
                  pppppppcVar43[5] = appppppcStack_2bc[5];
                  pppppppcVar43[6] = appppppcStack_2bc[6];
                  pppppppcVar43[7] = appppppcStack_2bc[7];
                  iVar40 = (*(code *)ppppppcStack_2d8)
                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,
                                      *(undefined4 *)
                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));
                  if (iVar40 != 0) {
LAB_000275d4:
                    if ((int)pppppppcVar27 < 1) {
                      pppppppcVar27 = (code *******)0xffffffff;
                      pppppppcVar43 = pppppppcStack_300;
                    }
                    else {
                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;
                      pppppppcVar32 = pppppppcStack_2ec;
                      do {
                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);
                        pppppppcVar32 = pppppppcVar32 + 3;
                        pppppppcVar27 = (code *******)0xffffffff;
                        pppppppcVar43 = pppppppcStack_300;
                      } while (pppppppcVar32 != pppppppcVar34);
                    }
                    goto LAB_00027610;
                  }
                  FUN_0001a53c(appppppcStack_2bc);
                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);
                  pppppppcVar43 = pppppppcStack_300;
                }
              }
              else if ((pppppppcVar26 == (code *******)0x1) &&
                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {
                FUN_0001a53c(appppppcStack_2bc);
                pppppppcVar43 = pppppppcStack_300;
              }
              else {
                pppppppcVar25 = appppppcStack_2bc;
                if ((int)pppppppcVar31[0x17] < 2) {
                  pppppppcVar37 = pppppppcVar31 + 0x18;
                  pppppppcVar29 = appppppcStack_2bc + 8;
                  uVar21 = 0;
                  do {
                    ppppppcVar4 = *pppppppcVar37;
                    pppppppcVar36 = (code *******)*pppppppcVar25;
                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);
                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;
                    pppppppcVar25 = pppppppcVar25 + 1;
                    pppppppcVar37 = pppppppcVar37 + 1;
                  } while (pppppppcVar25 != pppppppcVar29);
                }
                else {
                  pppppppcVar36 = pppppppcVar31 + 0x18;
                  ppppppcVar4 = pppppppcVar31[0xf];
                  uVar21 = 0;
                  do {
                    pppppppcVar29 = (code *******)*pppppppcVar25;
                    ppppppcVar41 = (code ******)
                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &
                                   (uint)pppppppcVar29);
                    *pppppppcVar25 = ppppppcVar41;
                    uVar21 = uVar21 | (uint)ppppppcVar41;
                    pppppppcVar25 = pppppppcVar25 + 1;
                    pppppppcVar36 = pppppppcVar36 + 1;
                    ppppppcVar4 = ppppppcVar4 + 1;
                  } while (pppppppcVar25 != appppppcStack_2bc + 8);
                }
                if (uVar21 != 0) goto LAB_00027078;
              }
            }
            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))
            {
              FUN_0001a53c(appppppcStack_2bc);
              pppppppcVar43 = pppppppcStack_300;
            }
            else {
              ppppppcVar4 = (code ******)appppppcStack_2bc;
              if ((int)pppppppcVar31[0x17] < 2) {
                pppppppcVar25 = appppppcStack_2bc;
                pppppppcVar37 = pppppppcVar31 + 0x18;
                pppppppcVar29 = appppppcStack_2bc + 8;
                uVar21 = 0;
                do {
                  ppppppcVar4 = *pppppppcVar25;
                  pppppppcVar36 = (code *******)*pppppppcVar37;
                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);
                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;
                  pppppppcVar25 = pppppppcVar25 + 1;
                  pppppppcVar37 = pppppppcVar37 + 1;
                } while (pppppppcVar25 != pppppppcVar29);
              }
              else {
                pppppppcVar36 = pppppppcVar31 + 0x18;
                ppppppcVar41 = pppppppcVar31[0xf];
                uVar21 = 0;
                do {
                  pppppppcVar29 = (code *******)*ppppppcVar4;
                  pppppcVar5 = (code *****)
                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)
                  ;
                  *ppppppcVar4 = pppppcVar5;
                  uVar21 = uVar21 | (uint)pppppcVar5;
                  ppppppcVar4 = ppppppcVar4 + 1;
                  pppppppcVar36 = pppppppcVar36 + 1;
                  ppppppcVar41 = ppppppcVar41 + 1;
                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);
              }
              if (uVar21 != 0) goto LAB_0002700c;
            }
          }
          else {
            FUN_0001a53c(appppppcStack_2bc);
            pppppppcVar43 = pppppppcStack_300;
          }
        }
        else {
          if (pppppppcVar26 == (code *******)0x3) {
            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);
            pppppppcVar43 = pppppppcStack_300;
            goto LAB_00026f88;
          }
          if (pppppppcVar26 == (code *******)&DAT_00000005) {
            if ((int)pppppppcVar31[0x17] < 2) {
              appppppcStack_2bc[0] = (code ******)0xffffffff;
              appppppcStack_2bc[1] = (code ******)0xffffffff;
              appppppcStack_2bc[2] = (code ******)0xffffffff;
              appppppcStack_2bc[3] = (code ******)0xffffffff;
              appppppcStack_2bc[4] = (code ******)0xffffffff;
              appppppcStack_2bc[5] = (code ******)0xffffffff;
              appppppcStack_2bc[6] = (code ******)0xffffffff;
              appppppcStack_2bc[7] = (code ******)0xffffffff;
            }
            else {
              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);
              pppppppcVar43 = pppppppcStack_300;
            }
            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {
              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);
            }
            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {
              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);
            }
            goto LAB_00026f88;
          }
          if (pppppppcVar26 == (code *******)0x7) {
            appppppcStack_2bc[0] = (code ******)0xffffffff;
            appppppcStack_2bc[1] = (code ******)0xffffffff;
            appppppcStack_2bc[2] = (code ******)0xffffffff;
            appppppcStack_2bc[3] = (code ******)0xffffffff;
            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {
              appppppcStack_2bc[0] = (code ******)0xfffffbff;
            }
            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {
              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);
            }
            goto LAB_00026f88;
          }
        }
LAB_00027478:
        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);
      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);
      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);
      if (0 < (int)pppppppcVar27) {
        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);
        pppppppcStack_2cc = pppppppcStack_2f8;
        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))
        {
          iStack_2d4 = (int)pppppppcVar27 * 0xc;
          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);
          if (pppppppcStack_2f0 != (code *******)0x0) {
            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;
            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;
            FUN_0001a53c(appppppcStack_27c);
            pppppppcVar42 = pppppppcStack_2ec + 1;
            pppppppcStack_2f4 = pppppppcStack_2f8;
            ppppppcStack_2d8 = (code ******)0x0;
            pppppppcVar28 = &ppppppcStack_2c8;
            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);
            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;
            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;
            do {
              uStack_2c4 = 0;
              if (0 < (int)*pppppppcVar42) {
                pppppppcVar6 = (code *******)0xffffffff;
                pppppppcVar43 = pppppppcStack_2f8;
                do {
                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=
                      (code *****)0xffffffff) {
                    pppppppcVar25 =
                         (code *******)
                         (pppppppcVar31[6] +
                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);
                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);
                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;
                  }
                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);
                  pppppppcVar29 = (code *******)0x0;
                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);
              }
              pppppppcVar29 = (code *******)0x0;
              pppppppcVar25 = pppppppcVar31;
              pppppppcVar36 = pppppppcVar28;
              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);
              pppppppcVar43 = pppppppcStack_2f4;
              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;
              *pppppppcVar6 = ppppppcVar4;
              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {
                ppppppcVar4 = pppppppcStack_300[-0x1f6c];
                goto LAB_00027798;
              }
              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {
                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;
                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;
              }
              else {
                pppppppcVar29 = (code *******)0x1;
                pppppppcVar25 = pppppppcVar31;
                pppppppcVar36 = pppppppcVar28;
                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);
                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;
                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {
                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];
                  goto LAB_00027798;
                }
                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {
                  ppppppcStack_2d8 = (code ******)0x1;
                }
                pppppppcVar29 = (code *******)0x2;
                pppppppcVar25 = pppppppcVar31;
                pppppppcVar36 = pppppppcVar28;
                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);
                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;
                if ((ppppppcVar4 == (code ******)0x0) &&
                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))
                goto LAB_00027794;
              }
              pppppppcVar32 = pppppppcStack_2ec;
              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);
              (*(code *)ppppppcStack_2dc)
                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);
              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);
              pppppppcVar42 = pppppppcVar42 + 3;
            } while (pppppppcStack_2f4 != pppppppcVar27);
            pppppppcVar25 = (code *******)0x100;
            if (ppppppcStack_2d8 == (code ******)0x0) {
              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);
              pppppppcVar38[0xb] = (code ******)pppppppcVar28;
              if (pppppppcVar28 == (code *******)0x0) {
LAB_00027794:
                ppppppcVar4 = pppppppcStack_300[-0x1f6c];
                pppppppcVar43 = pppppppcVar6;
LAB_00027798:
                (*(code *)ppppppcVar4)(pppppppcStack_2f0);
                pppppppcVar6 = pppppppcVar43;
                goto LAB_000277a4;
              }
              ppppppcVar4 = (code ******)appppppcStack_27c;
              pppppppcVar31 = pppppppcVar31 + 0x18;
              pppppppcVar25 = (code *******)0x0;
              pppppppcVar43 = pppppppcVar32;
              do {
                pppppcVar5 = *ppppppcVar4;
                pppppppcVar29 = pppppppcVar25;
                if (pppppcVar5 != (code *****)0x0) {
                  uVar21 = 1;
                  do {
                    if (((uint)pppppcVar5 & 1) != 0) {
                      pppppppcVar36 = pppppppcStack_2f8;
                      pppppppcVar34 = pppppppcVar43;
                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {
                        do {
                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);
                          pppppppcVar37 = pppppppcVar34 + 0x308;
                          pppppppcVar34 = pppppppcVar34 + 8;
                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);
                      }
                      else {
                        pppppppcVar36 = (code *******)0x0;
                      }
                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {
                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];
                        pppppppcVar36 = pppppppcStack_2f0;
                      }
                      else {
                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];
                        pppppppcVar36 = pppppppcStack_2e4;
                      }
                    }
                    uVar21 = uVar21 << 1;
                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);
                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
                  } while (pppppcVar5 != (code *****)0x0);
                }
                ppppppcVar4 = ppppppcVar4 + 1;
                pppppppcVar25 = pppppppcVar25 + 8;
                pppppppcVar31 = pppppppcVar31 + 1;
                pppppppcVar43 = pppppppcVar43 + 1;
              } while (pppppppcVar25 != (code *******)0x100);
            }
            else {
              pppppppcVar25 = (code *******)0x200;
              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);
              pppppppcVar38[0xc] = (code ******)pppppppcVar28;
              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;
              ppppppcVar4 = (code ******)appppppcStack_27c;
              pppppppcVar43 = pppppppcVar32;
              pppppppcVar25 = pppppppcVar28;
              do {
                pppppcVar5 = *ppppppcVar4;
                if (pppppcVar5 != (code *****)0x0) {
                  uVar21 = 1;
                  pppppppcVar29 = pppppppcVar25;
                  do {
                    if (((uint)pppppcVar5 & 1) != 0) {
                      pppppppcVar34 = (code *******)0x0;
                      ppppppcVar41 = pppppppcVar43[0x300];
                      pppppppcVar37 = pppppppcVar43;
                      pppppppcVar2 = pppppppcStack_2f8;
                      while ((uVar21 & (uint)ppppppcVar41) == 0) {
                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);
                        pppppppcVar36 = pppppppcVar37 + 8;
                        ppppppcVar41 = pppppppcVar37[0x308];
                        pppppppcVar37 = pppppppcVar36;
                        pppppppcVar2 = pppppppcVar34;
                      }
                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];
                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];
                    }
                    uVar21 = uVar21 << 1;
                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);
                    pppppppcVar29 = pppppppcVar29 + 1;
                  } while (pppppcVar5 != (code *****)0x0);
                }
                ppppppcVar4 = ppppppcVar4 + 1;
                pppppppcVar25 = pppppppcVar25 + 0x20;
                pppppppcVar43 = pppppppcVar43 + 1;
              } while (pppppppcVar28 + 0x100 != pppppppcVar25);
            }
            pppppppcVar25 = (code *******)0xa;
            iVar40 = FUN_00018598(appppppcStack_27c);
            if (iVar40 != 0) {
              pppppppcVar43 = pppppppcStack_2ec + 0x300;
              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);
              do {
                pppppppcVar42 = pppppppcStack_2f8;
                pppppppcVar25 = (code *******)0xa;
                iVar40 = FUN_00018598(pppppppcVar43);
                if (iVar40 != 0) {
                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];
                  pppppppcVar28[10] = ppppppcVar4;
                  if (ppppppcStack_2d8 != (code ******)0x0) {
                    pppppppcVar28[0x10a] = ppppppcVar4;
                  }
                  break;
                }
                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);
                pppppppcVar43 = pppppppcVar43 + 8;
              } while (pppppppcStack_2f8 != pppppppcVar27);
            }
            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);
            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);
            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);
            do {
              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);
              pppppppcVar32 = pppppppcVar32 + 3;
            } while (pppppppcVar34 != pppppppcVar32);
            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);
            pppppppcVar43 = (code *******)0x1;
            goto LAB_00027804;
          }
        }
LAB_000277a4:
        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);
        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;
        pppppppcVar32 = pppppppcStack_2ec;
        do {
          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);
          pppppppcVar32 = pppppppcVar32 + 3;
        } while (pppppppcVar32 != pppppppcVar34);
        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);
        pppppppcVar43 = (code *******)0x0;
        goto LAB_00027804;
      }
    }
LAB_00027610:
    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);
    pppppppcVar25 = (code *******)0x100;
    if (pppppppcVar27 == (code *******)0x0) {
      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);
      pppppppcVar38[0xb] = ppppppcVar4;
      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);
    }
    else {
      pppppppcVar43 = (code *******)0x0;
    }
  }
LAB_00027804:
  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {
    return pppppppcVar43;
  }
  ppppppcVar4 = pppppppcStack_300[-0x1f77];
  pcVar46 = FUN_00027cb0;
  pppppppcVar22 = pppppppcStack_25c;
  (*(code *)ppppppcVar4)();
  pppppppcVar2 = pppppppcStack_2f4;
  pppppppcVar37 = pppppppcStack_300;
  ppppcStack_33c = *ppppppcVar4[0x5999];
  pppppppcVar44 = (code *******)*pppppppcVar22;
  pppppppcVar43 = (code *******)0x0;
  pppppppcStack_338 = pppppppcVar32;
  pppppppcStack_334 = pppppppcVar34;
  pppppppcStack_330 = pppppppcVar27;
  pppppppcStack_32c = pppppppcVar6;
  pppppppcStack_328 = pppppppcVar28;
  pppppppcStack_324 = pppppppcVar42;
  pppppppcStack_320 = pppppppcVar31;
  pppppppcStack_31c = pppppppcVar26;
  pppppppcStack_318 = pppppppcVar38;
  pcStack_314 = pcVar46;
  pppppppcStack_308 = pppppppcVar36;
  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);
  ppppppcStack_458 = pppppppcVar22[4];
  if (ppppppcStack_458 != (code ******)0x0) {
    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {
      ppppppcStack_458 = (code ******)0x0;
    }
    else if (pppppppcVar29 == pppppppcVar37) {
      ppppppcStack_458 = (code ******)0x0;
    }
    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {
      ppppppcStack_458 = (code ******)0x0;
    }
  }
  if (pppppppcVar22[6] < pppppppcStack_2f8) {
    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));
  }
  else {
    pcStack_428 = (code *)0x0;
  }
  pppppppcStack_370 = pppppppcVar44;
  if (pppppppcVar22[2] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  if (pppppppcVar44[9] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  if (pppppppcVar44[10] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  if (pppppppcVar44[0xb] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  pppppppcVar43 = (code *******)pppppppcVar44[0xc];
  if (pppppppcVar43 == (code *******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  pppppppcVar26 = pppppppcVar37;
  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&
      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))
     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&
         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,
         pppppppcVar37 != (code *******)0x0)))) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);
  if (pppppppcVar6 == (code *******)0x0) {
    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;
  }
  else {
    bVar19 = true;
  }
  ppppppcVar41 = pppppppcVar22[5];
  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);
  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];
  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);
  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {
    pppppppcVar36 = pppppppcStack_374;
  }
  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);
  pppppppcStack_394 = pppppppcStack_308;
  pppppppcStack_398 = pppppppcStack_308;
  bStack_379 = bStack_37c;
  if (ppppppcVar41 != (code ******)0x0) {
    bStack_379 = 1;
  }
  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);
  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);
  pppppppcStack_38c = pppppppcStack_308;
  pppppppcStack_390 = pppppppcStack_308;
  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);
  if (pppppppcVar38 == (code *******)0x0) {
    pppppppcVar43 = pppppppcVar36;
  }
  pppppppcStack_3c4 = pppppppcVar25;
  ppppppcStack_384 = ppppppcVar41;
  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);
  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;
  pppppppcStack_380 = pppppppcVar44 + 0x18;
  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);
  pppppppcVar36 = (code *******)0x0;
  pppppppcStack_3a8 = pppppppcVar36;
  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {
    pppppppcStack_3a8 = pppppppcStack_308;
  }
  pppppppcStack_38c = pppppppcStack_2fc;
  pppppppcStack_390 = pppppppcStack_2fc;
  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);
  ppppppcVar39 = pppppppcVar44[0x13];
  uVar21 = (int)ppppppcVar39 * 2;
  pppppppcStack_36c = pppppppcStack_2f0;
  pppppppcStack_368 = (code *******)0xffffffff;
  pppppppcStack_3a4 = pppppppcStack_3a8;
  if ((int)uVar21 < 1) {
LAB_00029090:
    iStack_34c = 1;
    uStack_354 = uVar21;
    uStack_344 = uVar21;
    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {
      pppppppcStack_360 = (code *******)0x0;
LAB_000290e0:
      uStack_388 = 6;
      if (((uint)pppppppcStack_2f0 & 1) != 0) {
        uStack_388 = 4;
      }
      iVar40 = 1;
      pppppppcVar31 = pppppppcVar29;
      if ((int)pppppppcVar26 < (int)pppppppcVar29) {
        iVar40 = -1;
        pppppppcVar31 = pppppppcVar26;
      }
      pppppppcVar28 = pppppppcVar26;
      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {
        pppppppcVar28 = pppppppcVar29;
      }
      ppppppcVar39 = pppppppcVar44[0x17];
      uVar21 = 8;
      if (ppppppcStack_458 != (code ******)0x0) {
        if (ppppppcVar39 == (code ******)0x1) {
          pppppppcVar36 = (code *******)0x4;
        }
        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {
          pppppppcVar36 = (code *******)0x4;
        }
        pppppppcVar43 = (code *******)0x0;
        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {
          pppppppcVar43 = (code *******)0x2;
        }
        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |
                 (uint)pppppppcVar43;
      }
      pppppppcStack_3ec = pppppppcVar29;
      if ((int)pppppppcVar29 < (int)pppppppcVar31) {
        pppppppcStack_460 = (code *******)0x1;
      }
      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {
        pppppppcStack_460 = (code *******)0x1;
      }
      else {
        pppppppcVar36 = (code *******)&pppppppcStack_3ec;
        if ((int)pppppppcVar26 < (int)pppppppcVar29) {
          pppppppcVar36 = (code *******)0x0;
        }
        pppppcVar5 = ppppppcVar4[0x594e];
        pppppcVar9 = ppppppcVar4[0x5916];
LAB_000291e4:
        pppppppcVar26 = pppppppcStack_308;
        if (uVar21 - 4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x000291fc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          pppppppcVar26 =
               (code *******)
               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();
          return pppppppcVar26;
        }
        while( true ) {
          pppppppcVar27 = pppppppcStack_3ec;
          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);
          pppppppcVar38 = pppppppcStack_2f0;
          if (pppppppcStack_3a4 <= pppppppcVar42) {
            pppppppcVar43 = pppppppcStack_3ec;
            pppppppcStack_460 =
                 (code *******)
                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);
            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;
            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);
          }
          if ((int)pppppppcVar27 < (int)pppppppcVar26) {
            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);
          }
          else {
            uVar10 = 0;
          }
          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);
          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;
          pppppppcStack_3ec = pppppppcVar27;
          if ((int)pppppppcVar27 < (int)pppppppcVar31) {
            pppppppcStack_460 = (code *******)0x1;
            goto LAB_00028e84;
          }
          if ((int)pppppppcVar28 < (int)pppppppcVar27) {
            pppppppcStack_460 = (code *******)0x1;
            goto LAB_00028e84;
          }
        }
        while( true ) {
          pppppppcVar43 = pppppppcStack_3ec;
          pppppppcVar38 = pppppppcStack_2f0;
          pppppppcVar42 =
               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);
          pppppppcVar27 = pppppppcStack_370;
          pppppppcVar26 = pppppppcStack_39c;
          pppppppcStack_460 = pppppppcVar42;
          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;
          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&
             (*piStack_3bc == -1)) goto LAB_000291bc;
          iStack_34c = 0;
          uStack_358 = 0;
          pppppppcStack_35c = (code *******)0x0;
          pppppppcStack_448 = pppppppcStack_39c;
          pppppppcStack_3e8 = (code *******)0x0;
          pppppppcVar32 = (code *******)pppppppcStack_370[9];
          pppppppcVar38 = pppppppcStack_36c;
          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;
          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);
          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);
          if ((uVar10 & 1) == 0) {
            if (uVar10 == 0) break;
            if ((uVar10 & 6) == 6) {
              pppppppcVar32 = (code *******)pppppppcVar27[0xc];
              goto LAB_000283bc;
            }
            if ((uVar10 & 2) != 0) {
              pppppppcVar32 = (code *******)pppppppcVar27[0xb];
              goto LAB_000283bc;
            }
            if ((uVar10 & 4) == 0) break;
            pppppppcVar38 = (code *******)pppppppcVar32[10];
            pppppppcVar43 = pppppppcVar27;
            pppppppcVar32 =
                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);
            if (pppppppcVar32 != (code *******)0x0) break;
            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;
            pppppcVar30 = ppppppcVar4[0x5916];
          }
          else {
            pppppppcVar32 = (code *******)pppppppcVar27[10];
LAB_000283bc:
            pppppcVar30 = ppppppcVar4[0x5916];
            if (pppppppcVar32 != (code *******)0x0) break;
          }
          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);
          pppppppcStack_3ec =
               (code *******)
               (*(code *)ppppppcVar4[0x595c])
                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);
          if (pppppppcStack_3ec == pppppppcVar28) {
            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {
              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);
            }
            else {
              uVar10 = 0;
            }
            if (ppppppcVar41 != (code ******)0x0) {
              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);
            }
            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {
              pppppppcStack_460 = (code *******)0x1;
              pppppppcVar38 = pppppppcStack_2f0;
              goto LAB_00028e84;
            }
          }
        }
        bVar1 = pppppppcVar36 != (code *******)0x0;
        if ((pppppppcStack_360 == (code *******)0x0) ||
           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,
           pppppppcVar27[0x13] == (code ******)0x0)) {
LAB_000283f0:
          if ((int)pppppppcVar32[0xd] << 4 < 0) {
            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||
               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,
               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {
              pppppppcVar27 = pppppppcVar26;
              if (!bVar19) goto LAB_0002945c;
              pppppppcVar27 = (code *******)0x1;
            }
            else {
              pppppppcVar26 = (code *******)0xffffffff;
              pppppppcVar27 = (code *******)0x0;
            }
          }
          else {
            pppppppcVar26 = (code *******)0xffffffff;
            pppppppcVar27 = (code *******)0x0;
          }
          pppppcVar30 = ppppppcVar4[0x594e];
          pppppcVar11 = ppppppcVar4[0x594e];
          pppppcVar12 = ppppppcVar4[0x594e];
          pppppppcStack_454 = pppppppcVar36;
          while( true ) {
            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);
            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);
            pppppppcVar43 = pppppppcStack_39c;
            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;
            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&
               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;
            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {
              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {
LAB_00028534:
                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);
                pppppppcStack_3e8 =
                     (code *******)
                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);
                if (pppppppcStack_3e8 == (code *******)0x0) break;
                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;
                pppppppcVar38 = (code *******)0x468;
                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);
                uVar49 = (*(code *)ppppppcVar4[0x595c])
                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,
                                    ppppppcVar4[0x5916] + -0xcf0);
                pppppppcVar27 = pppppppcVar44;
              }
            }
            pppppppcVar29 = pppppppcStack_370;
            if ((int)pppppppcVar32[0xd] << 5 < 0) {
              if (0 < (int)pppppppcVar32[2]) {
                pppppcVar35 = ppppppcVar4[0x594e];
                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;
                iVar17 = 0;
                do {
                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];
                  ppppppcVar18 = *pppppppcVar29;
                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];
                  if (((uint)pppppcVar15 & 0x800) != 0) {
                    if (((uint)pppppcVar15 & 0xffc000) != 0) {
                      pppppppcVar43 = pppppppcStack_39c;
                      uVar16 = (*(code *)pppppcVar13)
                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);
                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;
                      if ((uVar10 & 4) == 0) {
                        uVar23 = uVar16 & 1;
                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;
                      }
                      else {
                        uVar23 = uVar10 & 8;
                        if ((uVar16 & 1) == 0) goto LAB_00028744;
joined_r0x000285e0:
                        if (uVar23 != 0) goto LAB_00028744;
                      }
                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||
                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;
                    }
                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;
                    pppppppcVar43 = pppppppcVar37;
                    iVar14 = (*(code *)(pppppcVar12 + -0x218))
                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)
                    ;
                    if (iVar14 != 0) {
                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);
                      if (iVar14 <= iStack_34c) {
                        iVar14 = iStack_34c;
                      }
                      pppppppcVar43 = pppppppcVar33;
                      iStack_34c = iVar14;
                      pppppppcStack_3e4 =
                           (code *******)
                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);
                      pppppppcVar3 = pppppppcStack_3e4;
                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;
                      pppppppcVar38 =
                           (code *******)
                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);
                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;
                      ppppppcVar18 = *pppppppcVar37;
                      if (ppppppcVar18 == (code ******)0x0) {
                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;
                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];
                        ppppppcStack_3d8 = pppppppcVar38[2];
                        uVar48 = (*(code *)pppppcVar13)
                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),
                                            pppppppcStack_36c);
                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;
                        pppppppcVar43 = pppppppcVar29;
                        ppppppcVar18 = (code ******)
                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,
                                                    uVar48);
                        *pppppppcVar37 = ppppppcVar18;
                      }
                      else {
                        pppppppcVar43 = (code *******)ppppppcVar18[10];
                        pppppppcStack_3e4 =
                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);
                        pppppppcVar3 = pppppppcStack_3e4;
                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;
                        uVar48 = (*(code *)pppppcVar13)
                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),
                                            pppppppcStack_36c);
                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;
                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;
                        pppppppcVar43 = pppppppcVar29;
                        ppppppcVar18 = (code ******)
                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,
                                                    uVar48);
                        *pppppppcVar37 = ppppppcVar18;
                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);
                      }
                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&
                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))
                      goto LAB_000294e4;
                    }
                  }
LAB_00028744:
                  iVar17 = iVar17 + 1;
                } while (iVar17 < (int)pppppppcVar32[2]);
              }
              pppppppcStack_3e8 = (code *******)0x0;
            }
            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);
            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);
            do {
              if (pppppppcVar32[0xb] != (code ******)0x0) {
                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];
LAB_00028a40:
                pppppppcVar29 = pppppppcVar38;
                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;
                goto LAB_00028a6c;
              }
              ppppppcVar18 = pppppppcVar32[0xc];
              if (ppppppcVar18 != (code ******)0x0) {
                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);
                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);
                if ((uVar16 & 1) == 0) {
                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];
                }
                else {
                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];
                }
                goto LAB_00028a40;
              }
              pppppppcVar43 = pppppppcVar32;
              pppppppcVar38 = pppppppcStack_36c;
              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);
            } while (iVar17 != 0);
            pppppppcStack_3e8 = (code *******)0xc;
            pppppppcVar3 = pppppppcStack_3e8;
LAB_000294e4:
            pppppppcStack_3e8 = pppppppcVar3;
            if (pppppppcStack_360 == (code *******)0x0) {
              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;
              break;
            }
            pppppppcVar38 = (code *******)0x0;
LAB_00028a4c:
            pppppppcVar43 = (code *******)&pppppppcStack_3c4;
            pppppppcVar29 = (code *******)FUN_00024f5c(&pppppppcStack_3e8,pppppppcVar43);
LAB_00028a6c:
            if (pppppppcVar29 == (code *******)0x0) {
              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;
              if ((pppppppcStack_360 == (code *******)0x0) ||
                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;
              pppppcVar35 = ppppppcVar4[0x594e];
              do {
                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;
                pppppppcVar29 = pppppppcStack_39c;
                do {
                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
                  pppppppcVar43 = pppppppcStack_35c;
                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;
                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);
                  pppppppcVar37 = pppppppcVar37 + 1;
                } while (*pppppppcVar37 == (code ******)0x0);
                pppppppcVar38 = (code *******)0x0;
                pppppppcVar43 = (code *******)&pppppppcStack_3c4;
                pppppppcVar29 =
                     (code *******)
                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);
                if (pppppppcStack_3e8 != (code *******)0x0) {
                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;
                  break;
                }
                pppppppcVar43 = pppppppcStack_35c;
              } while (pppppppcVar29 == (code *******)0x0);
            }
            pppppppcVar37 = pppppppcStack_448;
            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {
              bVar1 = false;
              pppppppcVar37 = pppppppcStack_448;
            }
            pppppppcStack_448 = pppppppcVar37;
            pppppppcVar32 = pppppppcVar29;
            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&
               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||
                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,
                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {
              pppppppcVar27 = pppppppcStack_39c;
              if (!bVar19) goto LAB_0002945c;
              pppppppcVar27 = (code *******)0x1;
              pppppppcStack_454 = (code *******)0x0;
              pppppppcVar26 = pppppppcStack_39c;
            }
          }
LAB_00029448:
          pppppppcVar27 = pppppppcVar26;
          if (pppppppcStack_454 != (code *******)0x0) {
            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);
          }
        }
        else {
          pppppppcVar34 = pppppppcVar32 + 1;
          pppppppcVar38 = (code *******)0x0;
          pppppppcVar43 = pppppppcVar34;
          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);
          pppppppcVar27 = pppppppcStack_3e8;
          if (pppppppcStack_3e8 == (code *******)0x0) {
            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {
              pppppppcVar43 = pppppppcVar34;
              bVar1 = false;
            }
            else {
              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);
              pppppppcVar43 = pppppppcVar34;
              pppppppcVar27 = pppppppcStack_3e8;
              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;
              bVar1 = false;
            }
            goto LAB_000283f0;
          }
        }
LAB_0002945c:
        if (pppppppcVar27 == (code *******)0xffffffff) {
LAB_000291a4:
          FUN_0001e14c(&pppppppcStack_3c4);
LAB_000291bc:
          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);
          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;
          pppppppcStack_460 = (code *******)0x1;
          goto LAB_00028e84;
        }
        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {
          pppppppcStack_460 = (code *******)0xc;
          goto LAB_00028e84;
        }
        pppppppcStack_368 = pppppppcVar27;
        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {
          if (pppppppcVar6 < (code *******)0x2) {
            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;
            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];
            pppppppcVar38 = pppppppcVar27;
            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);
          }
          else {
            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];
            pppppppcVar38 = pppppppcVar27;
            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);
          }
          if (pppppppcVar6 < (code *******)0x2) {
LAB_0002930c:
            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;
          }
          else {
            cVar20 = *(code *)(pppppppcVar44 + 0x16);
LAB_000292c0:
            if (-1 < (char)cVar20) goto LAB_0002930c;
          }
          ppppppcVar18 = ppppppcStack_364;
          pppppppcVar26 = pppppppcStack_370;
          if (pppppppcVar27 < (code *******)0x3fffffff) {
            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;
            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);
            if (pppppppcVar32 == (code *******)0x0) {
LAB_0002923c:
              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);
              pppppppcStack_460 = (code *******)0xc;
            }
            else {
              pppppppcVar43 = (code *******)&pppppppcStack_3e0;
              if (pppppppcVar26[0x13] == (code ******)0x0) {
                pppppppcStack_3dc = (code *******)0x0;
                ppppppcStack_3d8 = ppppppcVar18;
                uStack_3d0 = 0;
                uStack_3cc = 0;
                uStack_3c8 = 0;
                pppppppcStack_3e0 = pppppppcVar32;
                pppppppcStack_3d4 = pppppppcVar27;
                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);
                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);
                if (pppppppcStack_460 == (code *******)0x0) {
                  if (*pppppppcVar32 == (code ******)0x0) {
                    pppppppcVar34 = (code *******)0x0;
LAB_00029210:
                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);
                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);
                    goto LAB_000291a4;
                  }
LAB_00028bc8:
                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);
                  pppppppcStack_368 = pppppppcVar27;
                  ppppppcStack_364 = ppppppcVar18;
                  pppppppcStack_360 = pppppppcVar32;
                  goto LAB_00028be8;
                }
LAB_0002916c:
                pppppppcVar34 = (code *******)0x0;
              }
              else {
                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);
                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;
                pppppcVar30 = ppppppcVar4[0x594e];
                pppppcVar11 = ppppppcVar4[0x594e];
                while( true ) {
                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);
                  pppppppcVar38 = pppppppcVar29;
                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);
                  uStack_3d0 = 0;
                  uStack_3cc = 0;
                  uStack_3c8 = 0;
                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;
                  pppppppcStack_3e0 = pppppppcVar32;
                  pppppppcStack_3dc = pppppppcVar34;
                  ppppppcStack_3d8 = ppppppcVar18;
                  pppppppcStack_3d4 = pppppppcVar27;
                  pppppppcStack_460 =
                       (code *******)
                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);
                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);
                  if (pppppppcStack_460 != (code *******)0x0) break;
                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))
                  {
                    pppppppcVar43 = pppppppcVar32;
                    pppppppcVar38 = pppppppcVar34;
                    pppppppcStack_460 =
                         (code *******)
                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,
                                      (code *)((int)pppppppcVar27 + 1));
                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);
                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;
                    goto LAB_00028bc8;
                  }
                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));
                  do {
                    while( true ) {
                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);
                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;
                      pppppppcVar43 = *(code ********)(pcVar46 + -4);
                      if (pppppppcVar43 != (code *******)0x0) break;
                      pcVar46 = pcVar46 + -4;
                    }
                    pcVar46 = pcVar46 + -4;
                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);
                  ppppppcVar18 = (code ******)
                                 (*(code *)(pppppcVar11 + -0x108d))
                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);
                }
              }
              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);
              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);
              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;
            }
          }
          else {
            pppppppcStack_460 = (code *******)0xc;
          }
          goto LAB_00028e84;
        }
        if (pppppppcVar44[0x13] != (code ******)0x0) {
          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];
          pppppppcVar38 = pppppppcVar27;
          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);
          goto LAB_0002930c;
        }
LAB_000292a8:
        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {
          cVar20 = *(code *)(pppppppcVar44 + 0x16);
          goto LAB_000292c0;
        }
LAB_00028be8:
        pppppppcStack_460 = pppppppcVar42;
        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;
        if (pppppppcVar6 < (code *******)0x2) {
          *pppppppcVar2 = (code ******)0x0;
          pppppppcVar2[1] = (code ******)pppppppcStack_368;
          goto LAB_00028c4c;
        }
        pppppppcVar26 = pppppppcVar2 + 2;
        do {
          pppppppcVar26[1] = (code ******)0xffffffff;
          *pppppppcVar26 = (code ******)0xffffffff;
          pppppppcVar26 = pppppppcVar26 + 2;
        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);
        *pppppppcVar2 = (code ******)0x0;
        pppppppcVar2[1] = (code ******)pppppppcStack_368;
        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {
LAB_00028c4c:
          pppppppcVar26 = pppppppcVar2;
          do {
            pppppppcVar43 = (code *******)*pppppppcVar26;
            if (pppppppcVar43 != (code *******)0xffffffff) {
              if (cStack_378 != '\0') {
                pppppppcVar36 = pppppppcStack_3a4;
                if (pppppppcVar43 != pppppppcStack_3a8) {
                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);
                }
                *pppppppcVar26 = (code ******)pppppppcVar36;
                pppppppcVar36 = pppppppcStack_3a4;
                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {
                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);
                }
                pppppppcVar26[1] = (code ******)pppppppcVar36;
              }
              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);
              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);
              pppppppcVar26[1] = (code ******)pppppppcVar43;
            }
            pppppppcVar26 = pppppppcVar26 + 2;
          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);
          if (0 < (int)pcStack_428) {
            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;
            do {
              *pppppppcVar26 = (code ******)0xffffffff;
              pppppppcVar26[1] = (code ******)0xffffffff;
              pppppppcVar26 = pppppppcVar26 + 2;
            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);
          }
          pppppppcVar38 = pppppppcStack_3ec;
          pppppppcStack_460 = pppppppcVar42;
          if (pppppppcVar44[0x21] != (code ******)0x0) {
            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);
            pppppppcVar6 = (code *******)0x0;
            pppppppcVar26 = pppppppcVar2;
            while( true ) {
              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);
              if (pppppppcVar38 == pppppppcVar6) break;
              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {
                pppppppcVar26[2] =
                     pppppppcVar2
                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1
                           ) * 2];
                pppppppcVar26[3] =
                     pppppppcVar2
                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +
                      1];
              }
              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);
              pppppppcVar26 = pppppppcVar26 + 2;
            }
          }
          goto LAB_00028e84;
        }
        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {
          bVar19 = 0 < (int)pppppppcVar44[0x13];
        }
        else {
          bVar19 = false;
        }
        pppppppcVar43 = (code *******)&pppppppcStack_3c4;
        pppppppcVar38 = pppppppcVar6;
        pppppppcStack_460 =
             (code *******)
             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);
        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;
      }
    }
    else if (uStack_3a0 < 0x3fffffff) {
      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);
      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;
      pppppppcStack_460 = (code *******)0xc;
    }
    else {
      pppppppcStack_460 = (code *******)0xc;
    }
  }
  else {
    if (uVar21 < 0xccccccd) {
      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);
      iStack_350 = iVar40;
      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);
      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;
    }
    pppppppcStack_460 = (code *******)0xc;
  }
LAB_00028e84:
  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);
  pppppppcVar22 = pppppppcVar38;
  if (pppppppcVar44[0x13] != (code ******)0x0) {
    FUN_0001e14c(&pppppppcStack_3c4);
    (*(code *)ppppppcVar4[0x599c])(iStack_340);
    (*(code *)ppppppcVar4[0x599c])(iStack_350);
    pppppppcVar22 = pppppppcVar38;
  }
  FUN_0001dc20(&pppppppcStack_3c4);
LAB_00028eb4:
  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {
    return pppppppcStack_460;
  }
  pppppcVar5 = ppppppcVar4[0x5991];
  ppppcVar24 = ppppcStack_33c;
  (*(code *)pppppcVar5)();
  *(byte *)(pppppppcVar22 + 7) =
       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |
       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;
  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);
  if (iVar40 == 0) {
    pppppppcVar26 = (code *******)0x0;
  }
  else {
    pppppppcVar26 =
         (code *******)
         (*(code *)pppppcVar5[0x537d])
                   (0,(code *)((int)pppppcVar5[0x5301] +
                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);
  }
  return pppppppcVar26;
code_r0x000291d8:
  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;
  goto LAB_000291e4;
LAB_00028e48:
  pppppppcStack_460 = (code *******)0x1;
  goto LAB_00028e84;
LAB_00028fb4:
  pppppppcStack_460 = (code *******)0xc;
  goto LAB_00028e84;
}


lui gp,0x2
addiu gp,gp,0x1174
addu gp,gp,t9
addiu sp,sp,-0x48
sw ra,0x44(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw s2,0x30(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
sw gp,0x10(sp)
or s5,a0,zero
or s0,a1,zero
lw v0,-0x7dbc(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
lw s2,0x28(a1)
lw v1,0x68(a1)
slt v1,v1,s2
beq v1,zero,0x00025018
_lw s3,0x54(a1)
lw v0,0x64(a1)
sll v1,s2,0x2
addu v0,v0,v1
sw a2,0x0(v0)
sw s2,0x68(a1)
or s1,a2,zero
lw v0,0x4c(s3)
bne v0,zero,0x00025158
_nop
or v0,s1,zero
lw a0,0x24(sp)
lw v1,-0x7dbc(gp)
lw v1,0x0(v1)
bne a0,v1,0x000251e0
_lw ra,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x48
sll s1,s2,0x2
lw s4,0x64(a1)
addu s4,s4,s1
lw v0,0x0(s4)
beq v0,zero,0x000250dc
_nop
beq a2,zero,0x000250f0
_lw v0,0x28(v0)
lw s4,0x28(a2)
or a2,v0,zero
or a1,s4,zero
addiu a0,sp,0x18
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x51b0
bal 0x0001ae50
_nop
lw gp,0x10(sp)
bne v0,zero,0x000250e8
_sw v0,0x0(s5)
lw a1,0x28(s0)
lw a2,0x58(s0)
addiu a1,a1,-0x1
or a0,s0,zero
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x455c
bal 0x0001baa4
_nop
lw gp,0x10(sp)
lw s6,0x64(s0)
addu s6,s6,s1
or a3,v0,zero
addiu a2,sp,0x18
or a1,s3,zero
or a0,s5,zero
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x2868
bal 0x0001d798
_nop
lw gp,0x10(sp)
or s1,v0,zero
beq s4,zero,0x00024fd0
_sw v0,0x0(s6)
lw a0,0x20(sp)
lw t9,-0x7db0(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00024fd4
_lw v0,0x4c(s3)
sw a2,0x0(s4)
b 0x00024fd0
_or s1,a2,zero
b 0x00024fdc
_or s1,zero,zero
lw a0,0x0(v0)
lw v1,0x4(v0)
lw v0,0x8(v0)
sw a0,0x18(sp)
sw v1,0x1c(sp)
sw v0,0x20(sp)
lw a2,0x58(a1)
addiu a1,s2,-0x1
or a0,s0,zero
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x455c
bal 0x0001baa4
_nop
lw gp,0x10(sp)
or a3,v0,zero
addiu a2,sp,0x18
or a1,s3,zero
or a0,s5,zero
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x2868
bal 0x0001d798
_nop
lw gp,0x10(sp)
or s1,v0,zero
b 0x00024fd0
_sw v0,0x0(s4)
beq s1,zero,0x00024fdc
_addiu s3,s1,0x4
or a2,s2,zero
or a1,s3,zero
or a0,s0,zero
lw t9,-0x7ee8(gp)
addiu t9,t9,-0x5c64
bal 0x0001a39c
_nop
lw gp,0x10(sp)
bne v0,zero,0x000251d0
_sw v0,0x0(s5)
lbu v0,0x34(s1)
andi v0,v0,0x2
beq v0,zero,0x00024fe0
_or v0,s1,zero
or a1,s3,zero
or a0,s0,zero
lw t9,-0x7ee8(gp)
addiu t9,t9,0x4660
bal 0x00024660
_nop
lw gp,0x10(sp)
bne v0,zero,0x000251d8
_sw v0,0x0(s5)
lw v1,0x64(s0)
sll v0,s2,0x2
addu v0,v1,v0
b 0x00024fdc
_lw s1,0x0(v0)
b 0x00024fdc
_or s1,zero,zero
b 0x00024fdc
_or s1,zero,zero
lw t9,-0x7ddc(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\ncode ******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {\n          pppppppcVar26 = pppppppcVar38;\n          iVar40 = FUN_00024660(param_2);\n          *param_1 = iVar40;\n          if (iVar40 == 0) {\n            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];\n          }\n          else {\n            pppppppcVar6 = (code *******)0x0;\n          }\n        }\n      }\n      else {\n        pppppppcVar6 = (code *******)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);\n    if (*unaff_s4 == (code ******)0x0) {\n      *unaff_s4 = (code ******)param_3;\n      goto LAB_00024fd0;\n    }\n    pppppppcVar31 = (code *******)(*unaff_s4)[10];\n    if (param_3 == (code *******)0x0) {\n      local_30 = *pppppppcVar31;\n      local_2c = pppppppcVar31[1];\n      local_28 = pppppppcVar31[2];\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s4 = (code ******)pppppppcVar6;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (code *******)param_3[10];\n    pppppppcVar26 = unaff_s4;\n    iVar40 = FUN_0001ae50(&local_30);\n    *param_1 = iVar40;\n    if (iVar40 == 0) {\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);\n      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s6 = (code *****)pppppppcVar6;\n      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(local_28);\n      ppppppcVar4 = pppppppcVar38[0x13];\n      goto LAB_00024fd4;\n    }\n    pppppppcVar6 = (code *******)0x0;\n  }\n  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {\n    return pppppppcVar6;\n  }\n  pppppppcVar42 = local_24;\n  puVar45 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar45 + 0x20ee4;\n  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);\n  pppppppcVar43 = (code *******)pppppppcVar42[0x15];\n  pppppppcStack_94 = (code *******)0x0;\n  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);\n  pppppppcVar25 = pppppppcVar43;\n  pppppppcVar27 = param_4;\n  pppppppcVar28 = param_4;\n  pppppppcStack_70 = param_2;\n  pppppppcStack_6c = pppppppcVar6;\n  pppppppcStack_68 = pppppppcVar36;\n  pppppppcStack_64 = pppppppcVar38;\n  pppppppcStack_60 = unaff_s4;\n  piStack_5c = param_1;\n  ppppppcStack_58 = unaff_s6;\n  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {\n    pppppppcVar6 = (code *******)0x0;\n    if (param_4[1] != (code ******)0x0) {\n      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      *ppppppcVar4 = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;\n    pppppppcVar25 = pppppppcVar26;\n    if (pppppppcVar6 == (code *******)0x0) {\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {\n        pppppppcVar25 = pppppppcVar31;\n        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);\n        pppppppcVar36 = (code *******)0x0;\n        puVar45 = puStack_d8;\n        if (pppppppcStack_a0 != (code *******)0xffffffff) {\n          unaff_s8 = (code *******)pppppppcVar42[0x15];\n          pppppppcStack_90 = (code *******)0x0;\n          if ((int)pppppppcVar6[1] < 1) {\n            pppppppcVar36 = (code *******)0x0;\n          }\n          else {\n            iStack_9c = (int)pppppppcStack_a0 * 0x14;\n            pppppppcStack_c4 = (code *******)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];\n              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||\n                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&\n                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {\n                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);\n                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);\n                pppppppcStack_c8 = pppppppcStack_a0;\n                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);\n                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);\n                do {\n                  param_4 = pppppppcVar36;\n                  if (pppppppcVar43 == (code *******)*param_4) {\n                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));\n                    if ((int)param_4[3] - (int)param_4[2] == 0) {\n                      pppppppcStack_cc =\n                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));\n                    }\n                    else {\n                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);\n                    }\n                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&\n                        (pppppppcVar25 = pppppppcStack_cc,\n                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&\n                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),\n                       puVar45 = puStack_d8, iVar40 != 0)) {\n                      pppppppcVar25 = pppppppcVar26 + 4;\n                      pppppppcStack_e0 = pppppppcStack_cc;\n                      pppppppcVar27 = pppppppcVar43;\n                      pppppppcVar28 = pppppppcVar31;\n                      pcStack_dc = pcVar46;\n                      pppppppcStack_b0 = pppppppcVar25;\n                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);\n                      puVar45 = puStack_d8;\n                      if (iVar40 == 0) {\n                        if (pppppppcStack_90 == (code *******)0x0) {\n                          pppppppcStack_90 = (code *******)*pppppppcVar26;\n                          pppppppcVar28 = (code *******)pppppppcVar26[1];\n                          pppppppcVar27 = (code *******)pppppppcVar26[2];\n                          pppppppcStack_84 = (code *******)pppppppcVar26[3];\n                          ppppppcStack_80 = pppppppcVar26[4];\n                          ppppppcStack_7c = pppppppcVar26[5];\n                          ppppppcStack_78 = pppppppcVar26[6];\n                          pppppppcVar25 = pppppppcStack_b0;\n                          pppppppcStack_8c = pppppppcVar28;\n                          pppppppcStack_88 = pppppppcVar27;\n                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        }\n                        pppppppcVar25 = pppppppcStack_c8;\n                        pppppppcStack_88 = pppppppcVar43;\n                        pppppppcStack_84 = pppppppcVar31;\n                        iVar40 = FUN_00019e64(&ppppppcStack_80);\n                        if (iVar40 == 0) {\n                          pppppppcVar36 = (code *******)0xc;\n                          puVar45 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];\n                        pppppppcVar25 = (code *******)&pppppppcStack_90;\n                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);\n                        puVar45 = puStack_d8;\n                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        pppppppcVar25 = (code *******)pppppppcVar26[1];\n                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);\n                        if ((pppppppcVar25 != (code *******)0x0) &&\n                           (pppppppcVar27 = pppppppcStack_90,\n                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),\n                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                        goto LAB_00025aa0;\n                        pppppppcVar36 = pppppppcStack_c8;\n                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;\n                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);\n                        pppppppcVar25 = (code *******)(iVar40 + -1);\n                        FUN_000188ac(&ppppppcStack_80);\n                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);\n                        puVar45 = puStack_d8;\n                      }\n                    }\n                  }\n                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);\n                  pppppppcVar36 = param_4 + 5;\n                } while (*(code *)(param_4 + 4) != (code)0x0);\n              }\n              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);\n              pppppppcVar36 = (code *******)0x0;\n            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);\nLAB_00025aa0:\n            if (pppppppcStack_90 != (code *******)0x0) {\n              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);\n              puVar45 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);\n    pppppppcVar27 = pppppppcVar31;\n    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;\n    pppppppcStack_90 = (code *******)0x0;\n    pppppppcVar27 = param_4;\n    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);\n    pppppppcVar36 = pppppppcStack_90;\n    puVar45 = puStack_d8;\n    if (pppppppcStack_90 == (code *******)0x0) {\n      pppppppcVar27 = unaff_s8 + 7;\n      if (unaff_s8[7] == (code ******)0x0) {\n        pppppppcStack_cc = unaff_s8 + 7;\n        pppppppcVar25 = (code *******)param_4[1];\n        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);\n        if (pppppppcStack_90 != (code *******)0x0) {\n          pppppppcVar36 = (code *******)0xc;\n          puVar45 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < (int)param_4[1]) {\n          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar40 = 0;\n          do {\n            pppppppcStack_90 = (code *******)0x0;\n            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);\n            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);\n            if (pppppppcStack_90 != (code *******)0x0) {\n              pppppppcVar36 = (code *******)0xc;\n              puVar45 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar40 = iVar40 + 1;\n          } while (iVar40 < (int)param_4[1]);\n        }\n      }\n      pppppppcVar27 = unaff_s8 + 7;\n      pppppppcVar25 = pppppppcVar6;\n      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);\n      puVar45 = puStack_d8;\n      pppppppcStack_b4 = pppppppcVar36;\n      pppppppcStack_94 = pppppppcVar36;\n      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n      if (pppppppcVar26[5] != (code ******)0x0) {\n        ppppppcStack_bc = pppppppcVar42[0x1d];\n        if (0 < (int)pppppppcVar26[5]) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          pppppppcStack_cc = (code *******)0x0;\n          do {\n            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;\n            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&\n               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {\n              pppppppcVar28 = (code *******)*pppppppcVar43;\n              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];\n              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {\n                if (0 < (int)param_4[1]) {\n                  ppppppcVar41 = param_4[2];\n                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];\n                  pppppppcStack_c4 = (code *******)0xffffffff;\n                  pppppppcVar25 = (code *******)0xffffffff;\n                  do {\n                    pppppppcVar38 = (code *******)*ppppppcVar41;\n                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;\n                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {\n                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {\n                        pppppppcVar25 = pppppppcVar38;\n                      }\n                    }\n                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&\n                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {\n                      pppppppcStack_c4 = pppppppcVar38;\n                    }\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                  } while (ppppppcVar41 != ppppppcVar39);\n                  if ((int)pppppppcVar25 < 0) {\n                    unaff_s8 = pppppppcStack_b4;\n                    if (-1 < (int)pppppppcStack_c4) {\n                      do {\n                        ppppppcVar41 = param_4[2];\nLAB_00025600:\n                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];\n                        pppppppcStack_c8 = pppppppcVar36;\n                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,\n                                               pppppppcStack_c4);\n                        if ((iVar40 == 0) &&\n                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,\n                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,\n                           iVar40 == 0)) {\n                          pppppppcVar25 = pppppppcStack_c8;\n                          pppppppcVar27 = param_4;\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                          unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                        }\n                        unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                      } while ((int)unaff_s8 < (int)param_4[1]);\n                    }\n                  }\n                  else {\n                    pppppppcVar27 = param_4;\n                    pppppppcVar28 = pppppppcVar6;\n                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                    puVar45 = puStack_d8;\n                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                    if ((-1 < (int)pppppppcStack_c4) &&\n                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {\n                      ppppppcVar41 = param_4[2];\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = pppppppcStack_b4;\n                if (0 < (int)param_4[1]) {\n                  do {\n                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];\n                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&\n                        (pppppppcVar28 = pppppppcVar6,\n                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))\n                       && (pppppppcVar27 = param_4,\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),\n                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                  } while ((int)unaff_s8 < (int)param_4[1]);\n                }\n              }\n            }\n            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);\n          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);\n        }\n        pppppppcStack_94 = (code *******)0x0;\n      }\n      ppppppcVar41 = *pppppppcVar26;\n      pppppppcVar25 = pppppppcVar43;\n      pppppppcVar27 = param_4;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {\n    return pppppppcVar36;\n  }\n  pcVar46 = *(code **)(puVar45 + -0x7ddc);\n  pcVar47 = FUN_00025af4;\n  pppppppcVar38 = pppppppcStack_74;\n  (*pcVar46)();\n  pcStack_f4 = pcVar47;\n  pppppppcStack_f8 = unaff_s8;\n  ppppppcStack_fc = ppppppcVar4;\n  pppppppcStack_100 = pppppppcVar43;\n  pppppppcStack_104 = pppppppcVar42;\n  pppppppcStack_108 = pppppppcVar36;\n  pppppppcStack_10c = pppppppcVar6;\n  pppppppcStack_110 = pppppppcVar31;\n  pppppppcStack_114 = param_4;\n  pppppppcStack_118 = pppppppcVar26;\n  pcStack_158 = pcVar46 + 0x205dc;\n  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);\n  pppppppcVar31 = (code *******)pppppppcVar25[3];\n  pppppppcVar26 = (code *******)pppppppcVar25[2];\n  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);\n  if (pppppppcVar6 == (code *******)0x0) {\n    pppppppcVar28 = &ppppppcStack_128;\n    pppppppcVar26 = pppppppcVar25;\n    pppppppcVar27 = pppppppcVar31;\n    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);\n    pppppppcVar6 = pppppppcStack_13c;\n    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {\n      pppppppcStack_150 = pppppppcStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);\n        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {\n          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);\n        }\n        else {\n          pppppppcStack_150 = pppppppcStack_13c;\n        }\n        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {\n          pppppppcVar26 = (code *******)0x0;\n          pppppppcVar27 = unaff_s8;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n          pppppppcVar6 = pppppppcStack_13c;\n          goto LAB_00025e98;\n        }\n        uStack_124 = 0;\n        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));\n        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);\n        if ((ppppppcVar4 != (code ******)0x0) &&\n           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          pppppppcVar43 = pppppppcStack_13c;\n          do {\n            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];\n            iStack_14c = (int)pppppppcVar26 * 8;\n            pppppppcVar28 = pppppppcVar31;\n            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {\nLAB_00025d44:\n              pppppppcVar27 = pppppppcVar31;\n              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);\n              if ((iVar40 != 0) &&\n                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {\n                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,\n                                        pppppppcVar42[3][(int)pppppppcVar26]);\n                pppppppcVar36 = (code *******)0x1;\n                if (iVar40 != 0) {\n                  ppppppcVar41 = pppppppcVar25[5];\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              ppppppcStack_148 = pppppppcVar25[3];\n              ppppppcStack_134 = pppppppcVar38[0x15];\n              pppppppcVar27 = pppppppcVar38;\n              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);\n              if ((int)pppppppcVar36 < 1) {\n                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\n              else {\n                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&\n                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==\n                     (code *****)0x0 ||\n                    (iVar40 = (*pcStack_138)((*pppppppcVar25)\n                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,\n                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))\n                   )) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\nLAB_00025c9c:\n              if (ppppppcVar41 != (code ******)0x0) {\n                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];\n                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);\n                pppppppcStack_160 = pppppppcVar26;\n                pppppppcStack_15c = pppppppcVar31;\n                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);\n                if (iVar40 != 0) goto LAB_00025cfc;\n              }\n              iVar40 = (*pcStack_130)(&ppppppcStack_128);\n              if (iVar40 == 0) {\n                pppppppcVar6 = (code *******)0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);\n        }\n        pppppppcVar28 = &ppppppcStack_128;\n        pppppppcVar26 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);\n      } while ((pppppppcVar6 == (code *******)0x0) &&\n              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n  }\nLAB_00025e98:\n  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return pppppppcVar6;\n  }\n  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar47 = FUN_00025ee8;\n  pppppppcVar34 = pppppppcStack_11c;\n  (*pcVar46)();\n  pcStack_218 = pcVar46 + 0x201e8;\n  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);\n  pppppppcStack_204 = (code *******)0x0;\n  pppppppcVar34[3] = (code ******)pppppppcVar28;\n  pppppppcVar34[2] = (code ******)0x0;\n  pppppppcVar34[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;\n  pppppppcVar32 = (code *******)*pppppppcVar34;\n  pppppppcVar29 = pppppppcVar28;\n  pppppppcStack_198 = pppppppcVar31;\n  pppppppcStack_194 = pppppppcVar38;\n  pppppppcStack_190 = pppppppcVar25;\n  pppppppcStack_18c = pppppppcVar6;\n  pppppppcStack_188 = pppppppcVar36;\n  pppppppcStack_184 = pppppppcVar42;\n  pppppppcStack_180 = pppppppcVar43;\n  ppppppcStack_17c = ppppppcVar4;\n  pppppppcStack_178 = unaff_s8;\n  pcStack_174 = pcVar47;\n  if (pppppppcVar34[1] < (code ******)0x88) {\n    pppppppcVar38 = (code *******)0x88;\n    pppppppcVar36 = pppppppcVar27;\n    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);\n    if (pppppppcVar32 != (code *******)0x0) {\n      pppppppcVar34[1] = (code ******)0x88;\n      *pppppppcVar34 = (code ******)pppppppcVar32;\n      goto LAB_00025f80;\n    }\n    pppppppcVar31 = (code *******)0xc;\n  }\n  else {\nLAB_00025f80:\n    pppppppcVar34[2] = (code ******)0x88;\n    pppppppcVar36 = (code *******)0x88;\n    pppppppcVar38 = (code *******)0x0;\n    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);\n    pppppppcVar32[0x10] = (code ******)0x1f;\n    if (pppppppcVar27 < (code *******)0xaaaaaaa) {\n      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);\n      ppppppcVar4 = (code ******)\n                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);\n      *pppppppcVar32 = ppppppcVar4;\n      if (pppppppcVar27 == (code *******)0x0) {\n        pppppppcVar6 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar6 = (code *******)0x1;\n        do {\n          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);\n        } while (pppppppcVar6 <= pppppppcVar27);\n      }\n      pppppppcVar38 = pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);\n      pppppppcVar32[8] = ppppppcVar4;\n      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);\n      pppppppcVar32[0x11] = (code ******)pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();\n      pppppppcVar32[0x17] = ppppppcVar4;\n      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);\n      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&\n         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {\n        iVar40 = 3;\n        if (pbVar7[3] == 0x2d) {\n          iVar40 = 4;\n        }\n        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);\n        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);\n        if (iVar40 == 0) {\n          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;\n      if (1 < (int)pppppppcVar32[0x17]) {\n        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {\n          pppppppcVar38 = (code *******)0x1;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);\n          pppppppcVar32[0xf] = ppppppcVar4;\n          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;\n          pppppppcVar42 = (code *******)0x0;\n          unaff_s8 = (code *******)0x1;\n          do {\n            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);\n            uVar21 = 0;\n            do {\n              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);\n              if (pppppppcVar31 != (code *******)0xffffffff) {\n                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);\n                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =\n                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);\n              }\n              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {\n                *(byte *)(pppppppcVar32 + 0x16) =\n                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;\n              }\n              uVar21 = uVar21 + 1;\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n            } while (uVar21 != 0x20);\n            pppppppcVar42 = pppppppcVar42 + 1;\n            pppppppcVar43 = (code *******)0x20;\n          } while (pppppppcVar42 != (code *******)0x20);\n        }\n        else {\n          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);\n        }\n      }\n      if ((*pppppppcVar32 != (code ******)0x0) &&\n         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar43 = (code *******)pppppppcVar34[5];\n        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);\n        bVar19 = pppppppcVar42 != (code *******)0x0;\n        unaff_s8 = (code *******)(uint)bVar19;\n        pppppppcVar36 = (code *******)0x4c;\n        pppppppcVar38 = (code *******)0x0;\n        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);\n        if (pppppppcVar43 != (code *******)0x0) {\n          unaff_s8 = (code *******)0x1;\n        }\n        cStack_1a5 = (char)unaff_s8;\n        ppppppcStack_1a0 = pppppppcVar32[0x17];\n        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);\n        pppppppcStack_1f0 = pppppppcVar26;\n        pppppppcStack_1c4 = pppppppcVar27;\n        pppppppcStack_1c0 = pppppppcVar27;\n        pppppppcStack_1bc = pppppppcVar27;\n        pppppppcStack_1b8 = pppppppcVar27;\n        pppppppcStack_1b0 = pppppppcVar43;\n        uStack_1a8 = bVar19;\n        if (0 < (int)pppppppcVar27) {\n          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);\n          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          pppppppcVar26 = apppppppcStack_1ec[0];\n        }\n        apppppppcStack_1ec[0] = pppppppcVar26;\n        if (pppppppcVar42 == (code *******)0x0) {\n          if ((int)pppppppcVar32[0x17] < 2) {\n            if (pppppppcVar43 != (code *******)0x0) {\n              FUN_00018720();\n            }\n          }\n          else {\n            FUN_0001a644(&pppppppcStack_1f0);\n          }\n        }\n        else {\n          if (1 < (int)pppppppcVar32[0x17]) {\n            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);\n            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);\n            do {\n              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);\n              pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n              if (pppppppcVar25 != (code *******)0x0) break;\n              if (((int)pppppppcVar27 <= iStack_1d0) ||\n                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),\n                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;\n              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);\n            } while (pppppppcVar25 == (code *******)0x0);\n            goto LAB_000261b4;\n          }\n          FUN_0001a578(&pppppppcStack_1f0);\n        }\nLAB_000263f8:\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar34[6] = (code ******)0x0;\n        pppppppcVar43 = (code *******)*pppppppcVar34;\n        pppppppcVar43[0x20] = (code ******)pppppppcVar28;\n        pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);\n        pppppppcStack_21c = (code *******)&pppppppcStack_204;\n        uStack_220 = 0;\n        pppppppcVar38 = pppppppcVar34;\n        pppppppcVar6 = (code *******)\n                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);\n        pppppppcVar29 = (code *******)0x2;\n        if (pppppppcStack_204 == (code *******)0x0) {\n          pppppppcVar36 = (code *******)0x0;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar6 != (code *******)0x0) {\nLAB_000264d8:\n            pppppppcVar29 = (code *******)0x10;\n            pppppppcVar38 = pppppppcVar6;\n            pppppppcVar36 = pppppppcVar27;\n            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);\n          }\n          if ((pppppppcVar27 == (code *******)0x0) ||\n             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {\n            pppppppcStack_204 = (code *******)0xc;\n            goto LAB_0002671c;\n          }\n          pppppppcVar32[0xd] = (code ******)pppppppcVar31;\n          pppppppcVar27 = (code *******)*pppppppcVar34;\n          ppppppcVar4 = pppppppcVar27[1];\n          iVar40 = (int)ppppppcVar4 << 2;\n          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);\n          pppppppcVar27[3] = (code ******)pppppppcVar28;\n          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);\n          pppppppcVar27[4] = (code ******)pppppppcVar43;\n          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);\n          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[5] = (code ******)pppppppcVar26;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[6] = ppppppcVar4;\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar28 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar43 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar26 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (ppppppcVar4 == (code ******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else {\n            ppppppcVar4 = (code ******)\n                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);\n            pppppppcVar27[0x21] = ppppppcVar4;\n            if (ppppppcVar4 != (code ******)0x0) {\n              ppppppcVar4 = (code ******)0x0;\n              if (pppppppcVar34[6] != (code ******)0x0) {\n                do {\n                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;\n                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                } while (ppppppcVar4 < pppppppcVar34[6]);\n              }\n              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,\n                           pppppppcVar27);\n              ppppppcVar4 = pppppppcVar34[6];\n              if (ppppppcVar4 == (code ******)0x0) {\nLAB_0002672c:\n                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);\n                pppppppcVar27[0x21] = (code ******)0x0;\n              }\n              else {\n                ppppppcVar41 = pppppppcVar27[0x21];\n                if (*ppppppcVar41 == (code *****)0x0) {\n                  ppppppcVar39 = (code ******)0x0;\n                  do {\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                    if (ppppppcVar4 == ppppppcVar39) {\n                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;\n                      break;\n                    }\n                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);\n                }\n              }\n            }\n            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);\n            pppppppcVar25 =\n                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);\n            pppppppcVar36 = pppppppcVar27;\n            if (pppppppcVar25 == (code *******)0x0) {\n              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);\n              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);\n              if (pppppppcVar25 == (code *******)0x0) {\n                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);\n                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);\n                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);\n                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);\n                pppppppcVar25 = pppppppcVar26;\n                if (pppppppcVar26 == (code *******)0x0) {\n                  pppppppcVar43 = (code *******)0x0;\n                  unaff_s8 = &ppppppcStack_1fc;\n                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);\n                  pppppppcVar6 = (code *******)0x0;\n                  pcVar46 = pcStack_218;\nLAB_0002676c:\n                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {\nLAB_00026778:\n                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);\n                    pppppppcVar29 = (code *******)0x1;\n                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==\n                        (code *****)0x0) {\n                      pppppppcVar38 = pppppppcVar27;\n                      pppppppcVar36 = pppppppcVar6;\n                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);\n                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;\n                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);\n                      pcVar46 = pcStack_218;\n                      if (pppppppcVar28[1] == (code ******)0x0) {\n                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                        pppppppcVar43 = (code *******)0x1;\n                        pcVar46 = pcStack_218;\n                      }\n                    }\n                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n                    goto LAB_0002676c;\n                  }\n                  if (pppppppcVar43 != (code *******)0x0) {\n                    pppppppcVar43 = (code *******)0x0;\n                    pppppppcVar6 = (code *******)0x0;\n                    goto LAB_00026778;\n                  }\n                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&\n                      (pppppppcVar34[6] != (code ******)0x0)) &&\n                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  else {\n                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  ppppppcVar4 = (code ******)\n                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);\n                  pppppppcVar27[7] = ppppppcVar4;\n                  if (ppppppcVar4 == (code ******)0x0) {\n                    pppppppcVar25 = (code *******)0xc;\n                    goto LAB_000261b4;\n                  }\n                  pcVar46 = pcStack_218;\n                  if (pppppppcVar6 != (code *******)0x0) {\n                    iVar40 = 0;\n                    ppppppcVar4 = (code ******)0x0;\n                    do {\n                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);\n                      *pcVar47 = (code)0x0;\n                      pcVar47[1] = (code)0x0;\n                      pcVar47[2] = (code)0x0;\n                      pcVar47[3] = (code)0x0;\n                      pcVar47[4] = (code)0x0;\n                      pcVar47[5] = (code)0x0;\n                      pcVar47[6] = (code)0x0;\n                      pcVar47[7] = (code)0x0;\n                      pcVar47[8] = (code)0x0;\n                      pcVar47[9] = (code)0x0;\n                      pcVar47[10] = (code)0x0;\n                      pcVar47[0xb] = (code)0x0;\n                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                      iVar40 = iVar40 + 0xc;\n                    } while (ppppppcVar4 < pppppppcVar27[2]);\n                    if (pppppppcVar27[2] != (code ******)0x0) {\n                      unaff_s8 = (code *******)0x0;\n                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);\n                      pppppppcStack_210 = (code *******)0x0;\n                      do {\n                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))\n                        ;\n                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {\n                          pppppppcVar28 = (code *******)0x0;\n                          do {\n                            pppppppcVar38 = pppppppcStack_210;\n                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);\n                            pppppppcVar25 = (code *******)0xc;\n                            if (iVar40 == 0) goto LAB_000261b4;\n                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);\n                            pppppppcVar6 = pppppppcVar6 + 1;\n                            pcVar46 = pcStack_218;\n                          } while ((int)pppppppcVar28 <\n                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));\n                        }\n                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);\n                        unaff_s8 = unaff_s8 + 3;\n                      } while (pppppppcStack_210 < pppppppcVar27[2]);\n                    }\n                  }\nLAB_00026918:\n                  pppppppcStack_204 = (code *******)0x0;\n                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&\n                      (pppppppcVar42 == (code *******)0x0)) &&\n                     (pppppppcVar34[5] == (code ******)0x0)) {\n                    pppppppcVar6 = pppppppcVar43;\n                    if (pppppppcVar32[2] != (code ******)0x0) {\n                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);\n                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00026a88. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                        pppppppcVar26 =\n                             (code *******)\n                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();\n                        return pppppppcVar26;\n                      }\n                      (**(code **)(pcVar46 + -0x7ea4))(0);\n                      if (pppppppcVar6 != (code *******)0x0) {\n                        pppppppcVar36 = (code *******)0x7;\n                        pppppppcVar26 = (code *******)0x0;\n                        do {\n                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;\n                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {\n                            if (*(char *)ppppppcVar4 < '\0') {\n                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);\n                            }\n                          }\n                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {\n                            *(char *)(ppppppcVar4 + 1) = '\a';\n                          }\n                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);\n                        } while (pppppppcVar26 < pppppppcVar32[2]);\n                      }\n                    }\n                    pppppppcVar32[0x17] = (code ******)0x1;\n                    if (0 < (int)pppppppcVar32[0x13]) {\n                      pppppppcVar6 = (code *******)0x1;\n                    }\n                    *(byte *)(pppppppcVar32 + 0x16) =\n                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |\n                         (byte)(((uint)pppppppcVar6 & 1) << 6);\n                  }\n                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];\n                  pppppppcVar32[0x12] = ppppppcVar4;\n                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);\n                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);\n                  pppppppcVar6 = pppppppcVar31;\n                  pppppppcStack_200 = pppppppcVar31;\n                  if (pppppppcVar31 == (code *******)0x0) {\n                    if ((0 < (int)pppppppcVar32[0x13]) &&\n                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {\n                      pppppppcVar42 = &ppppppcStack_1fc;\n                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);\n                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);\n                      pppppppcVar27 = (code *******)0x0;\n                      do {\n                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];\n                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);\n                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {\n                          iVar40 = 0;\n                          piVar8 = piStack_1f4;\n                          if (iStack_1f8 < 1) {\nLAB_00026bb4:\n                            if (iVar40 != iStack_1f8) {\n                              pppppppcVar26 =\n                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];\n                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);\n                              if (iVar40 == 0) {\n                                pppppppcVar38 =\n                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);\n                                pppppppcVar27 =\n                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);\n                                pppppppcVar6 = pppppppcVar27;\n                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;\n                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&\n                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;\n                              iVar40 = iVar40 + 1;\n                              piVar8 = piVar8 + 1;\n                            } while (iStack_1f8 != iVar40);\n                          }\n                        }\n                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                      } while ((int)pppppppcVar27 < iStack_1f8);\n                    }\n                    pppppppcVar29 = (code *******)0x0;\n                    pppppppcVar36 = &ppppppcStack_1fc;\n                    pppppppcVar38 = pppppppcVar32;\n                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);\n                    pppppppcVar32[9] = ppppppcVar4;\n                    pppppppcVar6 = pppppppcStack_200;\n                    if (ppppppcVar4 != (code ******)0x0) {\n                      pppppppcVar29 = (code *******)0x1;\n                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar32[10] = ppppppcVar4;\n                      }\n                      else {\n                        pppppppcVar42 = &ppppppcStack_1fc;\n                        pppppppcVar28 = (code *******)&pppppppcStack_200;\n                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);\n                        pppppppcVar32[10] = ppppppcVar4;\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar29 = (code *******)0x6;\n                        pppppppcVar38 = pppppppcVar32;\n                        pppppppcVar36 = pppppppcVar42;\n                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar6 = pppppppcStack_200;\n                        if (((pppppppcVar32[10] == (code ******)0x0) ||\n                            (pppppppcVar32[0xb] == (code ******)0x0)) ||\n                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                      pppppppcVar6 = pppppppcVar31;\n                    }\n                  }\nLAB_00026ce0:\n                  pppppppcStack_204 = pppppppcVar6;\n                  FUN_0001db98(pppppppcVar34);\n                  FUN_0001dc20(&pppppppcStack_1f0);\n                  pppppppcVar31 = pppppppcStack_204;\n                  if (pppppppcStack_204 != (code *******)0x0) {\n                    FUN_0001dc9c(pppppppcVar32);\n                    *pppppppcVar34 = (code ******)0x0;\n                    pppppppcVar34[1] = (code ******)0x0;\n                    pppppppcVar31 = pppppppcStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pppppppcVar36 = (code *******)0x0;\n          if (pppppppcVar6 != (code *******)0x0) {\n            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          pppppppcVar32[0xd] = (code ******)0x0;\n          pppppppcVar25 = pppppppcStack_204;\n        }\nLAB_000261b4:\n        pppppppcStack_204 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        FUN_0001db98(pppppppcVar34);\n        FUN_0001dc20(&pppppppcStack_1f0);\n        FUN_0001dc9c(pppppppcVar32);\n        *pppppppcVar34 = (code ******)0x0;\n        pppppppcVar34[1] = (code ******)0x0;\n        pppppppcVar31 = pppppppcStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    pppppppcStack_204 = (code *******)0xc;\n    FUN_0001dc9c(pppppppcVar32);\n    *pppppppcVar34 = (code ******)0x0;\n    pppppppcVar34[1] = (code ******)0x0;\n    pppppppcVar31 = pppppppcStack_204;\n  }\nLAB_00026d24:\n  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {\n    return pppppppcVar31;\n  }\n  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);\n  uVar48 = 0x26e9c;\n  pppppppcVar31 = pppppppcStack_19c;\n  (*pcVar46)();\n  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);\n  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);\n  pppppppcVar25 = pppppppcVar38;\n  pppppppcStack_258 = pppppppcVar32;\n  pppppppcStack_254 = pppppppcVar34;\n  pppppppcStack_250 = pppppppcVar27;\n  pppppppcStack_24c = pppppppcVar6;\n  pppppppcStack_248 = pppppppcVar28;\n  pppppppcStack_244 = pppppppcVar42;\n  pppppppcStack_240 = pppppppcVar43;\n  pppppppcStack_23c = pppppppcVar26;\n  pppppppcStack_238 = unaff_s8;\n  uStack_234 = uVar48;\n  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);\n  if (pppppppcStack_2ec == (code *******)0x0) {\n    pppppppcVar43 = (code *******)0x0;\n  }\n  else {\n    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;\n    pppppppcVar38[0xb] = (code ******)0x0;\n    pppppppcVar38[0xc] = (code ******)0x0;\n    pppppppcStack_2e4 = pppppppcStack_2ec;\n    FUN_0001a53c(appppppcStack_2bc);\n    pppppppcVar43 = pppppppcStack_300;\n    if ((int)pppppppcVar38[2] < 1) {\n      pppppppcVar27 = (code *******)0x0;\n    }\n    else {\n      pppppppcVar27 = (code *******)0x0;\n      pppppppcStack_2f4 = (code *******)0x0;\n      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;\n      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;\n      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;\n      do {\n        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);\n        pppppppcVar6 = (code *******)\n                       (*pppppppcVar31 +\n                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);\n        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);\n        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);\n        if (pppppppcVar26 == (code *******)0x1) {\n          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);\n          pppppppcVar43 = pppppppcStack_300;\nLAB_00026f88:\n          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;\n          if (((uint)pppppppcVar32 & 0x20) != 0) {\n            pppppppcVar34 = appppppcStack_2bc;\n            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);\n            FUN_0001a53c(pppppppcVar34);\n            pppppppcVar43 = pppppppcStack_300;\n            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;\n            FUN_00018540(appppppcStack_2bc,10);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n          if (((uint)pppppppcVar32 & 0x80) == 0) {\n            if (((uint)pppppppcVar32 & 4) == 0) {\nLAB_0002700c:\n              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);\n              if (pppppppcVar32 == (code *******)0x0) {\nLAB_00027078:\n                if ((int)pppppppcVar27 < 1) {\n                  pppppppcVar34 = (code *******)0x0;\n                }\n                else {\n                  pppppppcVar32 = pppppppcStack_2ec + 0x300;\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];\n                  pppppppcVar42 = pppppppcStack_2ec;\n                  do {\n                    if ((pppppppcVar26 != (code *******)0x1) ||\n                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),\n                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {\n                      pppppppcVar37 = appppppcStack_2bc;\n                      uVar21 = 0;\n                      pppppppcVar25 = pppppppcVar37;\n                      pppppppcVar36 = pppppppcVar32;\n                      pppppppcVar29 = appppppcStack_2bc + 8;\n                      do {\n                        ppppppcVar4 = *pppppppcVar25;\n                        ppppppcVar41 = *pppppppcVar36;\n                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);\n                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;\n                        pppppppcVar25 = pppppppcVar25 + 1;\n                        pppppppcVar36 = pppppppcVar36 + 1;\n                        pppppppcVar29 = pppppppcVar29 + 1;\n                      } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                      if (uVar21 != 0) {\n                        pppppppcVar36 = appppppcStack_27c;\n                        pppppppcVar28 = (code *******)0x0;\n                        uVar21 = 0;\n                        pppppppcVar43 = pppppppcVar32;\n                        do {\n                          pppppppcVar29 = (code *******)*pppppppcVar37;\n                          ppppppcVar4 = *pppppppcVar43;\n                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);\n                          *pppppppcVar36 = ppppppcVar41;\n                          uVar21 = uVar21 | (uint)ppppppcVar41;\n                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);\n                          *pppppppcVar37 = ppppppcVar4;\n                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);\n                          pppppppcVar37 = pppppppcVar37 + 1;\n                          pppppppcVar43 = pppppppcVar43 + 1;\n                          pppppppcVar36 = pppppppcVar36 + 1;\n                        } while (pppppppcVar43 != pppppppcVar32 + 8);\n                        if (uVar21 != 0) {\n                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                          *pppppppcVar43 = appppppcStack_27c[0];\n                          pppppppcVar43[1] = appppppcStack_27c[1];\n                          pppppppcVar43[2] = appppppcStack_27c[2];\n                          pppppppcVar43[3] = appppppcStack_27c[3];\n                          pppppppcVar43[4] = ppppppcStack_26c;\n                          pppppppcVar43[5] = ppppppcStack_268;\n                          pppppppcVar43[6] = ppppppcStack_264;\n                          pppppppcVar43[7] = ppppppcStack_260;\n                          *pppppppcVar32 = appppppcStack_2bc[8];\n                          pppppppcVar32[1] = appppppcStack_2bc[9];\n                          pppppppcVar32[2] = appppppcStack_2bc[10];\n                          pppppppcVar32[3] = appppppcStack_2bc[0xb];\n                          pppppppcVar32[4] = ppppppcStack_28c;\n                          pppppppcVar32[5] = ppppppcStack_288;\n                          pppppppcVar32[6] = ppppppcStack_284;\n                          pppppppcVar32[7] = ppppppcStack_280;\n                          iVar40 = (*(code *)ppppppcStack_2dc)\n                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                              pppppppcVar42);\n                          if (iVar40 != 0) goto LAB_000275d4;\n                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                        }\n                        iVar40 = (*(code *)ppppppcStack_2e8)\n                                           (pppppppcVar42,\n                                            *(undefined4 *)\n                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                        if (iVar40 == 0) goto LAB_000275d4;\n                        pppppppcVar43 = pppppppcStack_300;\n                        if (pppppppcVar28 == (code *******)0x0) break;\n                      }\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar32 = pppppppcVar32 + 8;\n                    pppppppcVar42 = pppppppcVar42 + 3;\n                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);\n                }\n                if (pppppppcVar27 == pppppppcVar34) {\n                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                  *pppppppcVar43 = appppppcStack_2bc[0];\n                  pppppppcVar43[1] = appppppcStack_2bc[1];\n                  pppppppcVar43[2] = appppppcStack_2bc[2];\n                  pppppppcVar43[3] = appppppcStack_2bc[3];\n                  pppppppcVar43[4] = appppppcStack_2bc[4];\n                  pppppppcVar43[5] = appppppcStack_2bc[5];\n                  pppppppcVar43[6] = appppppcStack_2bc[6];\n                  pppppppcVar43[7] = appppppcStack_2bc[7];\n                  iVar40 = (*(code *)ppppppcStack_2d8)\n                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                      *(undefined4 *)\n                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                  if (iVar40 != 0) {\nLAB_000275d4:\n                    if ((int)pppppppcVar27 < 1) {\n                      pppppppcVar27 = (code *******)0xffffffff;\n                      pppppppcVar43 = pppppppcStack_300;\n                    }\n                    else {\n                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n                      pppppppcVar32 = pppppppcStack_2ec;\n                      do {\n                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n                        pppppppcVar32 = pppppppcVar32 + 3;\n                        pppppppcVar27 = (code *******)0xffffffff;\n                        pppppppcVar43 = pppppppcStack_300;\n                      } while (pppppppcVar32 != pppppppcVar34);\n                    }\n                    goto LAB_00027610;\n                  }\n                  FUN_0001a53c(appppppcStack_2bc);\n                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                  pppppppcVar43 = pppppppcStack_300;\n                }\n              }\n              else if ((pppppppcVar26 == (code *******)0x1) &&\n                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {\n                FUN_0001a53c(appppppcStack_2bc);\n                pppppppcVar43 = pppppppcStack_300;\n              }\n              else {\n                pppppppcVar25 = appppppcStack_2bc;\n                if ((int)pppppppcVar31[0x17] < 2) {\n                  pppppppcVar37 = pppppppcVar31 + 0x18;\n                  pppppppcVar29 = appppppcStack_2bc + 8;\n                  uVar21 = 0;\n                  do {\n                    ppppppcVar4 = *pppppppcVar37;\n                    pppppppcVar36 = (code *******)*pppppppcVar25;\n                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);\n                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar37 = pppppppcVar37 + 1;\n                  } while (pppppppcVar25 != pppppppcVar29);\n                }\n                else {\n                  pppppppcVar36 = pppppppcVar31 + 0x18;\n                  ppppppcVar4 = pppppppcVar31[0xf];\n                  uVar21 = 0;\n                  do {\n                    pppppppcVar29 = (code *******)*pppppppcVar25;\n                    ppppppcVar41 = (code ******)\n                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &\n                                   (uint)pppppppcVar29);\n                    *pppppppcVar25 = ppppppcVar41;\n                    uVar21 = uVar21 | (uint)ppppppcVar41;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar36 = pppppppcVar36 + 1;\n                    ppppppcVar4 = ppppppcVar4 + 1;\n                  } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                }\n                if (uVar21 != 0) goto LAB_00027078;\n              }\n            }\n            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))\n            {\n              FUN_0001a53c(appppppcStack_2bc);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            else {\n              ppppppcVar4 = (code ******)appppppcStack_2bc;\n              if ((int)pppppppcVar31[0x17] < 2) {\n                pppppppcVar25 = appppppcStack_2bc;\n                pppppppcVar37 = pppppppcVar31 + 0x18;\n                pppppppcVar29 = appppppcStack_2bc + 8;\n                uVar21 = 0;\n                do {\n                  ppppppcVar4 = *pppppppcVar25;\n                  pppppppcVar36 = (code *******)*pppppppcVar37;\n                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);\n                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;\n                  pppppppcVar25 = pppppppcVar25 + 1;\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (pppppppcVar25 != pppppppcVar29);\n              }\n              else {\n                pppppppcVar36 = pppppppcVar31 + 0x18;\n                ppppppcVar41 = pppppppcVar31[0xf];\n                uVar21 = 0;\n                do {\n                  pppppppcVar29 = (code *******)*ppppppcVar4;\n                  pppppcVar5 = (code *****)\n                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)\n                  ;\n                  *ppppppcVar4 = pppppcVar5;\n                  uVar21 = uVar21 | (uint)pppppcVar5;\n                  ppppppcVar4 = ppppppcVar4 + 1;\n                  pppppppcVar36 = pppppppcVar36 + 1;\n                  ppppppcVar41 = ppppppcVar41 + 1;\n                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);\n              }\n              if (uVar21 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            FUN_0001a53c(appppppcStack_2bc);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n        }\n        else {\n          if (pppppppcVar26 == (code *******)0x3) {\n            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);\n            pppppppcVar43 = pppppppcStack_300;\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)&DAT_00000005) {\n            if ((int)pppppppcVar31[0x17] < 2) {\n              appppppcStack_2bc[0] = (code ******)0xffffffff;\n              appppppcStack_2bc[1] = (code ******)0xffffffff;\n              appppppcStack_2bc[2] = (code ******)0xffffffff;\n              appppppcStack_2bc[3] = (code ******)0xffffffff;\n              appppppcStack_2bc[4] = (code ******)0xffffffff;\n              appppppcStack_2bc[5] = (code ******)0xffffffff;\n              appppppcStack_2bc[6] = (code ******)0xffffffff;\n              appppppcStack_2bc[7] = (code ******)0xffffffff;\n            }\n            else {\n              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)0x7) {\n            appppppcStack_2bc[0] = (code ******)0xffffffff;\n            appppppcStack_2bc[1] = (code ******)0xffffffff;\n            appppppcStack_2bc[2] = (code ******)0xffffffff;\n            appppppcStack_2bc[3] = (code ******)0xffffffff;\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)0xfffffbff;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);\n      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);\n      if (0 < (int)pppppppcVar27) {\n        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);\n        pppppppcStack_2cc = pppppppcStack_2f8;\n        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))\n        {\n          iStack_2d4 = (int)pppppppcVar27 * 0xc;\n          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);\n          if (pppppppcStack_2f0 != (code *******)0x0) {\n            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;\n            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;\n            FUN_0001a53c(appppppcStack_27c);\n            pppppppcVar42 = pppppppcStack_2ec + 1;\n            pppppppcStack_2f4 = pppppppcStack_2f8;\n            ppppppcStack_2d8 = (code ******)0x0;\n            pppppppcVar28 = &ppppppcStack_2c8;\n            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);\n            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;\n            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;\n            do {\n              uStack_2c4 = 0;\n              if (0 < (int)*pppppppcVar42) {\n                pppppppcVar6 = (code *******)0xffffffff;\n                pppppppcVar43 = pppppppcStack_2f8;\n                do {\n                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=\n                      (code *****)0xffffffff) {\n                    pppppppcVar25 =\n                         (code *******)\n                         (pppppppcVar31[6] +\n                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);\n                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);\n                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;\n                  }\n                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n                  pppppppcVar29 = (code *******)0x0;\n                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);\n              }\n              pppppppcVar29 = (code *******)0x0;\n              pppppppcVar25 = pppppppcVar31;\n              pppppppcVar36 = pppppppcVar28;\n              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n              pppppppcVar43 = pppppppcStack_2f4;\n              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;\n              *pppppppcVar6 = ppppppcVar4;\n              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                goto LAB_00027798;\n              }\n              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;\n                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;\n              }\n              else {\n                pppppppcVar29 = (code *******)0x1;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                  goto LAB_00027798;\n                }\n                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {\n                  ppppppcStack_2d8 = (code ******)0x1;\n                }\n                pppppppcVar29 = (code *******)0x2;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) &&\n                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))\n                goto LAB_00027794;\n              }\n              pppppppcVar32 = pppppppcStack_2ec;\n              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);\n              (*(code *)ppppppcStack_2dc)\n                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);\n              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n              pppppppcVar42 = pppppppcVar42 + 3;\n            } while (pppppppcStack_2f4 != pppppppcVar27);\n            pppppppcVar25 = (code *******)0x100;\n            if (ppppppcStack_2d8 == (code ******)0x0) {\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xb] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) {\nLAB_00027794:\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                pppppppcVar43 = pppppppcVar6;\nLAB_00027798:\n                (*(code *)ppppppcVar4)(pppppppcStack_2f0);\n                pppppppcVar6 = pppppppcVar43;\n                goto LAB_000277a4;\n              }\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar31 = pppppppcVar31 + 0x18;\n              pppppppcVar25 = (code *******)0x0;\n              pppppppcVar43 = pppppppcVar32;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                pppppppcVar29 = pppppppcVar25;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar36 = pppppppcStack_2f8;\n                      pppppppcVar34 = pppppppcVar43;\n                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {\n                        do {\n                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);\n                          pppppppcVar37 = pppppppcVar34 + 0x308;\n                          pppppppcVar34 = pppppppcVar34 + 8;\n                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);\n                      }\n                      else {\n                        pppppppcVar36 = (code *******)0x0;\n                      }\n                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2f0;\n                      }\n                      else {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2e4;\n                      }\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 8;\n                pppppppcVar31 = pppppppcVar31 + 1;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar25 != (code *******)0x100);\n            }\n            else {\n              pppppppcVar25 = (code *******)0x200;\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xc] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar25 = pppppppcVar28;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  pppppppcVar29 = pppppppcVar25;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar34 = (code *******)0x0;\n                      ppppppcVar41 = pppppppcVar43[0x300];\n                      pppppppcVar37 = pppppppcVar43;\n                      pppppppcVar2 = pppppppcStack_2f8;\n                      while ((uVar21 & (uint)ppppppcVar41) == 0) {\n                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);\n                        pppppppcVar36 = pppppppcVar37 + 8;\n                        ppppppcVar41 = pppppppcVar37[0x308];\n                        pppppppcVar37 = pppppppcVar36;\n                        pppppppcVar2 = pppppppcVar34;\n                      }\n                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];\n                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = pppppppcVar29 + 1;\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 0x20;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar28 + 0x100 != pppppppcVar25);\n            }\n            pppppppcVar25 = (code *******)0xa;\n            iVar40 = FUN_00018598(appppppcStack_27c);\n            if (iVar40 != 0) {\n              pppppppcVar43 = pppppppcStack_2ec + 0x300;\n              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);\n              do {\n                pppppppcVar42 = pppppppcStack_2f8;\n                pppppppcVar25 = (code *******)0xa;\n                iVar40 = FUN_00018598(pppppppcVar43);\n                if (iVar40 != 0) {\n                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];\n                  pppppppcVar28[10] = ppppppcVar4;\n                  if (ppppppcStack_2d8 != (code ******)0x0) {\n                    pppppppcVar28[0x10a] = ppppppcVar4;\n                  }\n                  break;\n                }\n                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);\n                pppppppcVar43 = pppppppcVar43 + 8;\n              } while (pppppppcStack_2f8 != pppppppcVar27);\n            }\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);\n            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);\n            do {\n              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n              pppppppcVar32 = pppppppcVar32 + 3;\n            } while (pppppppcVar34 != pppppppcVar32);\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n            pppppppcVar43 = (code *******)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n        pppppppcVar32 = pppppppcStack_2ec;\n        do {\n          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n          pppppppcVar32 = pppppppcVar32 + 3;\n        } while (pppppppcVar32 != pppppppcVar34);\n        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n        pppppppcVar43 = (code *******)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);\n    pppppppcVar25 = (code *******)0x100;\n    if (pppppppcVar27 == (code *******)0x0) {\n      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n      pppppppcVar38[0xb] = ppppppcVar4;\n      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);\n    }\n    else {\n      pppppppcVar43 = (code *******)0x0;\n    }\n  }\nLAB_00027804:\n  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {\n    return pppppppcVar43;\n  }\n  ppppppcVar4 = pppppppcStack_300[-0x1f77];\n  pcVar46 = FUN_00027cb0;\n  pppppppcVar22 = pppppppcStack_25c;\n  (*(code *)ppppppcVar4)();\n  pppppppcVar2 = pppppppcStack_2f4;\n  pppppppcVar37 = pppppppcStack_300;\n  ppppcStack_33c = *ppppppcVar4[0x5999];\n  pppppppcVar44 = (code *******)*pppppppcVar22;\n  pppppppcVar43 = (code *******)0x0;\n  pppppppcStack_338 = pppppppcVar32;\n  pppppppcStack_334 = pppppppcVar34;\n  pppppppcStack_330 = pppppppcVar27;\n  pppppppcStack_32c = pppppppcVar6;\n  pppppppcStack_328 = pppppppcVar28;\n  pppppppcStack_324 = pppppppcVar42;\n  pppppppcStack_320 = pppppppcVar31;\n  pppppppcStack_31c = pppppppcVar26;\n  pppppppcStack_318 = pppppppcVar38;\n  pcStack_314 = pcVar46;\n  pppppppcStack_308 = pppppppcVar36;\n  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);\n  ppppppcStack_458 = pppppppcVar22[4];\n  if (ppppppcStack_458 != (code ******)0x0) {\n    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if (pppppppcVar29 == pppppppcVar37) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n  }\n  if (pppppppcVar22[6] < pppppppcStack_2f8) {\n    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));\n  }\n  else {\n    pcStack_428 = (code *)0x0;\n  }\n  pppppppcStack_370 = pppppppcVar44;\n  if (pppppppcVar22[2] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[9] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[10] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[0xb] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar43 = (code *******)pppppppcVar44[0xc];\n  if (pppppppcVar43 == (code *******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar26 = pppppppcVar37;\n  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&\n      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))\n     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&\n         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,\n         pppppppcVar37 != (code *******)0x0)))) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);\n  if (pppppppcVar6 == (code *******)0x0) {\n    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;\n  }\n  else {\n    bVar19 = true;\n  }\n  ppppppcVar41 = pppppppcVar22[5];\n  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);\n  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];\n  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);\n  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {\n    pppppppcVar36 = pppppppcStack_374;\n  }\n  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);\n  pppppppcStack_394 = pppppppcStack_308;\n  pppppppcStack_398 = pppppppcStack_308;\n  bStack_379 = bStack_37c;\n  if (ppppppcVar41 != (code ******)0x0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);\n  pppppppcStack_38c = pppppppcStack_308;\n  pppppppcStack_390 = pppppppcStack_308;\n  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);\n  if (pppppppcVar38 == (code *******)0x0) {\n    pppppppcVar43 = pppppppcVar36;\n  }\n  pppppppcStack_3c4 = pppppppcVar25;\n  ppppppcStack_384 = ppppppcVar41;\n  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);\n  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n  pppppppcStack_380 = pppppppcVar44 + 0x18;\n  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);\n  pppppppcVar36 = (code *******)0x0;\n  pppppppcStack_3a8 = pppppppcVar36;\n  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {\n    pppppppcStack_3a8 = pppppppcStack_308;\n  }\n  pppppppcStack_38c = pppppppcStack_2fc;\n  pppppppcStack_390 = pppppppcStack_2fc;\n  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);\n  ppppppcVar39 = pppppppcVar44[0x13];\n  uVar21 = (int)ppppppcVar39 * 2;\n  pppppppcStack_36c = pppppppcStack_2f0;\n  pppppppcStack_368 = (code *******)0xffffffff;\n  pppppppcStack_3a4 = pppppppcStack_3a8;\n  if ((int)uVar21 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar21;\n    uStack_344 = uVar21;\n    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {\n      pppppppcStack_360 = (code *******)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if (((uint)pppppppcStack_2f0 & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar40 = 1;\n      pppppppcVar31 = pppppppcVar29;\n      if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n        iVar40 = -1;\n        pppppppcVar31 = pppppppcVar26;\n      }\n      pppppppcVar28 = pppppppcVar26;\n      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {\n        pppppppcVar28 = pppppppcVar29;\n      }\n      ppppppcVar39 = pppppppcVar44[0x17];\n      uVar21 = 8;\n      if (ppppppcStack_458 != (code ******)0x0) {\n        if (ppppppcVar39 == (code ******)0x1) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        pppppppcVar43 = (code *******)0x0;\n        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {\n          pppppppcVar43 = (code *******)0x2;\n        }\n        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |\n                 (uint)pppppppcVar43;\n      }\n      pppppppcStack_3ec = pppppppcVar29;\n      if ((int)pppppppcVar29 < (int)pppppppcVar31) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar36 = (code *******)&pppppppcStack_3ec;\n        if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n          pppppppcVar36 = (code *******)0x0;\n        }\n        pppppcVar5 = ppppppcVar4[0x594e];\n        pppppcVar9 = ppppppcVar4[0x5916];\nLAB_000291e4:\n        pppppppcVar26 = pppppppcStack_308;\n        if (uVar21 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x000291fc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          pppppppcVar26 =\n               (code *******)\n               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();\n          return pppppppcVar26;\n        }\n        while( true ) {\n          pppppppcVar27 = pppppppcStack_3ec;\n          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);\n          pppppppcVar38 = pppppppcStack_2f0;\n          if (pppppppcStack_3a4 <= pppppppcVar42) {\n            pppppppcVar43 = pppppppcStack_3ec;\n            pppppppcStack_460 =\n                 (code *******)\n                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);\n          }\n          if ((int)pppppppcVar27 < (int)pppppppcVar26) {\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);\n          }\n          else {\n            uVar10 = 0;\n          }\n          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);\n          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;\n          pppppppcStack_3ec = pppppppcVar27;\n          if ((int)pppppppcVar27 < (int)pppppppcVar31) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n          if ((int)pppppppcVar28 < (int)pppppppcVar27) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          pppppppcVar43 = pppppppcStack_3ec;\n          pppppppcVar38 = pppppppcStack_2f0;\n          pppppppcVar42 =\n               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n          pppppppcVar27 = pppppppcStack_370;\n          pppppppcVar26 = pppppppcStack_39c;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;\n          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          pppppppcStack_35c = (code *******)0x0;\n          pppppppcStack_448 = pppppppcStack_39c;\n          pppppppcStack_3e8 = (code *******)0x0;\n          pppppppcVar32 = (code *******)pppppppcStack_370[9];\n          pppppppcVar38 = pppppppcStack_36c;\n          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;\n          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n          if ((uVar10 & 1) == 0) {\n            if (uVar10 == 0) break;\n            if ((uVar10 & 6) == 6) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xc];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 2) != 0) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xb];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 4) == 0) break;\n            pppppppcVar38 = (code *******)pppppppcVar32[10];\n            pppppppcVar43 = pppppppcVar27;\n            pppppppcVar32 =\n                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);\n            if (pppppppcVar32 != (code *******)0x0) break;\n            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n            pppppcVar30 = ppppppcVar4[0x5916];\n          }\n          else {\n            pppppppcVar32 = (code *******)pppppppcVar27[10];\nLAB_000283bc:\n            pppppcVar30 = ppppppcVar4[0x5916];\n            if (pppppppcVar32 != (code *******)0x0) break;\n          }\n          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n          pppppppcStack_3ec =\n               (code *******)\n               (*(code *)ppppppcVar4[0x595c])\n                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);\n          if (pppppppcStack_3ec == pppppppcVar28) {\n            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {\n              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);\n            }\n            else {\n              uVar10 = 0;\n            }\n            if (ppppppcVar41 != (code ******)0x0) {\n              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);\n            }\n            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {\n              pppppppcStack_460 = (code *******)0x1;\n              pppppppcVar38 = pppppppcStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar1 = pppppppcVar36 != (code *******)0x0;\n        if ((pppppppcStack_360 == (code *******)0x0) ||\n           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,\n           pppppppcVar27[0x13] == (code ******)0x0)) {\nLAB_000283f0:\n          if ((int)pppppppcVar32[0xd] << 4 < 0) {\n            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||\n               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,\n               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {\n              pppppppcVar27 = pppppppcVar26;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n            }\n            else {\n              pppppppcVar26 = (code *******)0xffffffff;\n              pppppppcVar27 = (code *******)0x0;\n            }\n          }\n          else {\n            pppppppcVar26 = (code *******)0xffffffff;\n            pppppppcVar27 = (code *******)0x0;\n          }\n          pppppcVar30 = ppppppcVar4[0x594e];\n          pppppcVar11 = ppppppcVar4[0x594e];\n          pppppcVar12 = ppppppcVar4[0x594e];\n          pppppppcStack_454 = pppppppcVar36;\n          while( true ) {\n            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);\n            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);\n            pppppppcVar43 = pppppppcStack_39c;\n            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;\n            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&\n               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;\n            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {\n              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {\nLAB_00028534:\n                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);\n                pppppppcStack_3e8 =\n                     (code *******)\n                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);\n                if (pppppppcStack_3e8 == (code *******)0x0) break;\n                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n                pppppppcVar38 = (code *******)0x468;\n                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n                uVar49 = (*(code *)ppppppcVar4[0x595c])\n                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,\n                                    ppppppcVar4[0x5916] + -0xcf0);\n                pppppppcVar27 = pppppppcVar44;\n              }\n            }\n            pppppppcVar29 = pppppppcStack_370;\n            if ((int)pppppppcVar32[0xd] << 5 < 0) {\n              if (0 < (int)pppppppcVar32[2]) {\n                pppppcVar35 = ppppppcVar4[0x594e];\n                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;\n                iVar17 = 0;\n                do {\n                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];\n                  ppppppcVar18 = *pppppppcVar29;\n                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];\n                  if (((uint)pppppcVar15 & 0x800) != 0) {\n                    if (((uint)pppppcVar15 & 0xffc000) != 0) {\n                      pppppppcVar43 = pppppppcStack_39c;\n                      uVar16 = (*(code *)pppppcVar13)\n                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);\n                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;\n                      if ((uVar10 & 4) == 0) {\n                        uVar23 = uVar16 & 1;\n                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar23 = uVar10 & 8;\n                        if ((uVar16 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar23 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||\n                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;\n                    pppppppcVar43 = pppppppcVar37;\n                    iVar14 = (*(code *)(pppppcVar12 + -0x218))\n                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)\n                    ;\n                    if (iVar14 != 0) {\n                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);\n                      if (iVar14 <= iStack_34c) {\n                        iVar14 = iStack_34c;\n                      }\n                      pppppppcVar43 = pppppppcVar33;\n                      iStack_34c = iVar14;\n                      pppppppcStack_3e4 =\n                           (code *******)\n                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);\n                      pppppppcVar3 = pppppppcStack_3e4;\n                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                      pppppppcVar38 =\n                           (code *******)\n                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);\n                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                      ppppppcVar18 = *pppppppcVar37;\n                      if (ppppppcVar18 == (code ******)0x0) {\n                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;\n                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];\n                        ppppppcStack_3d8 = pppppppcVar38[2];\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                      }\n                      else {\n                        pppppppcVar43 = (code *******)ppppppcVar18[10];\n                        pppppppcStack_3e4 =\n                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);\n                        pppppppcVar3 = pppppppcStack_3e4;\n                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);\n                      }\n                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&\n                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))\n                      goto LAB_000294e4;\n                    }\n                  }\nLAB_00028744:\n                  iVar17 = iVar17 + 1;\n                } while (iVar17 < (int)pppppppcVar32[2]);\n              }\n              pppppppcStack_3e8 = (code *******)0x0;\n            }\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);\n            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n            do {\n              if (pppppppcVar32[0xb] != (code ******)0x0) {\n                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];\nLAB_00028a40:\n                pppppppcVar29 = pppppppcVar38;\n                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;\n                goto LAB_00028a6c;\n              }\n              ppppppcVar18 = pppppppcVar32[0xc];\n              if (ppppppcVar18 != (code ******)0x0) {\n                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n                if ((uVar16 & 1) == 0) {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];\n                }\n                else {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];\n                }\n                goto LAB_00028a40;\n              }\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar38 = pppppppcStack_36c;\n              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);\n            } while (iVar17 != 0);\n            pppppppcStack_3e8 = (code *******)0xc;\n            pppppppcVar3 = pppppppcStack_3e8;\nLAB_000294e4:\n            pppppppcStack_3e8 = pppppppcVar3;\n            if (pppppppcStack_360 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              break;\n            }\n            pppppppcVar38 = (code *******)0x0;\nLAB_00028a4c:\n            pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n            pppppppcVar29 = (code *******)FUN_00024f5c(&pppppppcStack_3e8,pppppppcVar43);\nLAB_00028a6c:\n            if (pppppppcVar29 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              if ((pppppppcStack_360 == (code *******)0x0) ||\n                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;\n              pppppcVar35 = ppppppcVar4[0x594e];\n              do {\n                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;\n                pppppppcVar29 = pppppppcStack_39c;\n                do {\n                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  pppppppcVar43 = pppppppcStack_35c;\n                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;\n                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (*pppppppcVar37 == (code ******)0x0);\n                pppppppcVar38 = (code *******)0x0;\n                pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n                pppppppcVar29 =\n                     (code *******)\n                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);\n                if (pppppppcStack_3e8 != (code *******)0x0) {\n                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;\n                  break;\n                }\n                pppppppcVar43 = pppppppcStack_35c;\n              } while (pppppppcVar29 == (code *******)0x0);\n            }\n            pppppppcVar37 = pppppppcStack_448;\n            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {\n              bVar1 = false;\n              pppppppcVar37 = pppppppcStack_448;\n            }\n            pppppppcStack_448 = pppppppcVar37;\n            pppppppcVar32 = pppppppcVar29;\n            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&\n               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||\n                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,\n                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {\n              pppppppcVar27 = pppppppcStack_39c;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n              pppppppcStack_454 = (code *******)0x0;\n              pppppppcVar26 = pppppppcStack_39c;\n            }\n          }\nLAB_00029448:\n          pppppppcVar27 = pppppppcVar26;\n          if (pppppppcStack_454 != (code *******)0x0) {\n            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);\n          }\n        }\n        else {\n          pppppppcVar34 = pppppppcVar32 + 1;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar43 = pppppppcVar34;\n          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);\n          pppppppcVar27 = pppppppcStack_3e8;\n          if (pppppppcStack_3e8 == (code *******)0x0) {\n            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {\n              pppppppcVar43 = pppppppcVar34;\n              bVar1 = false;\n            }\n            else {\n              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);\n              pppppppcVar43 = pppppppcVar34;\n              pppppppcVar27 = pppppppcStack_3e8;\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;\n              bVar1 = false;\n            }\n            goto LAB_000283f0;\n          }\n        }\nLAB_0002945c:\n        if (pppppppcVar27 == (code *******)0xffffffff) {\nLAB_000291a4:\n          FUN_0001e14c(&pppppppcStack_3c4);\nLAB_000291bc:\n          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);\n          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;\n          pppppppcStack_460 = (code *******)0x1;\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {\n          pppppppcStack_460 = (code *******)0xc;\n          goto LAB_00028e84;\n        }\n        pppppppcStack_368 = pppppppcVar27;\n        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {\n          if (pppppppcVar6 < (code *******)0x2) {\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          else {\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          if (pppppppcVar6 < (code *******)0x2) {\nLAB_0002930c:\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;\n          }\n          else {\n            cVar20 = *(code *)(pppppppcVar44 + 0x16);\nLAB_000292c0:\n            if (-1 < (char)cVar20) goto LAB_0002930c;\n          }\n          ppppppcVar18 = ppppppcStack_364;\n          pppppppcVar26 = pppppppcStack_370;\n          if (pppppppcVar27 < (code *******)0x3fffffff) {\n            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;\n            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n            if (pppppppcVar32 == (code *******)0x0) {\nLAB_0002923c:\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              pppppppcStack_460 = (code *******)0xc;\n            }\n            else {\n              pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n              if (pppppppcVar26[0x13] == (code ******)0x0) {\n                pppppppcStack_3dc = (code *******)0x0;\n                ppppppcStack_3d8 = ppppppcVar18;\n                uStack_3d0 = 0;\n                uStack_3cc = 0;\n                uStack_3c8 = 0;\n                pppppppcStack_3e0 = pppppppcVar32;\n                pppppppcStack_3d4 = pppppppcVar27;\n                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);\n                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                if (pppppppcStack_460 == (code *******)0x0) {\n                  if (*pppppppcVar32 == (code ******)0x0) {\n                    pppppppcVar34 = (code *******)0x0;\nLAB_00029210:\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    goto LAB_000291a4;\n                  }\nLAB_00028bc8:\n                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n                  pppppppcStack_368 = pppppppcVar27;\n                  ppppppcStack_364 = ppppppcVar18;\n                  pppppppcStack_360 = pppppppcVar32;\n                  goto LAB_00028be8;\n                }\nLAB_0002916c:\n                pppppppcVar34 = (code *******)0x0;\n              }\n              else {\n                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;\n                pppppcVar30 = ppppppcVar4[0x594e];\n                pppppcVar11 = ppppppcVar4[0x594e];\n                while( true ) {\n                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);\n                  pppppppcVar38 = pppppppcVar29;\n                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);\n                  uStack_3d0 = 0;\n                  uStack_3cc = 0;\n                  uStack_3c8 = 0;\n                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n                  pppppppcStack_3e0 = pppppppcVar32;\n                  pppppppcStack_3dc = pppppppcVar34;\n                  ppppppcStack_3d8 = ppppppcVar18;\n                  pppppppcStack_3d4 = pppppppcVar27;\n                  pppppppcStack_460 =\n                       (code *******)\n                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);\n                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                  if (pppppppcStack_460 != (code *******)0x0) break;\n                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))\n                  {\n                    pppppppcVar43 = pppppppcVar32;\n                    pppppppcVar38 = pppppppcVar34;\n                    pppppppcStack_460 =\n                         (code *******)\n                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,\n                                      (code *)((int)pppppppcVar27 + 1));\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;\n                    goto LAB_00028bc8;\n                  }\n                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));\n                  do {\n                    while( true ) {\n                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);\n                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;\n                      pppppppcVar43 = *(code ********)(pcVar46 + -4);\n                      if (pppppppcVar43 != (code *******)0x0) break;\n                      pcVar46 = pcVar46 + -4;\n                    }\n                    pcVar46 = pcVar46 + -4;\n                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);\n                  ppppppcVar18 = (code ******)\n                                 (*(code *)(pppppcVar11 + -0x108d))\n                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);\n                }\n              }\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;\n            }\n          }\n          else {\n            pppppppcStack_460 = (code *******)0xc;\n          }\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar44[0x13] != (code ******)0x0) {\n          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n          pppppppcVar38 = pppppppcVar27;\n          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          goto LAB_0002930c;\n        }\nLAB_000292a8:\n        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {\n          cVar20 = *(code *)(pppppppcVar44 + 0x16);\n          goto LAB_000292c0;\n        }\nLAB_00028be8:\n        pppppppcStack_460 = pppppppcVar42;\n        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;\n        if (pppppppcVar6 < (code *******)0x2) {\n          *pppppppcVar2 = (code ******)0x0;\n          pppppppcVar2[1] = (code ******)pppppppcStack_368;\n          goto LAB_00028c4c;\n        }\n        pppppppcVar26 = pppppppcVar2 + 2;\n        do {\n          pppppppcVar26[1] = (code ******)0xffffffff;\n          *pppppppcVar26 = (code ******)0xffffffff;\n          pppppppcVar26 = pppppppcVar26 + 2;\n        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n        *pppppppcVar2 = (code ******)0x0;\n        pppppppcVar2[1] = (code ******)pppppppcStack_368;\n        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {\nLAB_00028c4c:\n          pppppppcVar26 = pppppppcVar2;\n          do {\n            pppppppcVar43 = (code *******)*pppppppcVar26;\n            if (pppppppcVar43 != (code *******)0xffffffff) {\n              if (cStack_378 != '\0') {\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcVar43 != pppppppcStack_3a8) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);\n                }\n                *pppppppcVar26 = (code ******)pppppppcVar36;\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);\n                }\n                pppppppcVar26[1] = (code ******)pppppppcVar36;\n              }\n              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);\n              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);\n              pppppppcVar26[1] = (code ******)pppppppcVar43;\n            }\n            pppppppcVar26 = pppppppcVar26 + 2;\n          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n          if (0 < (int)pcStack_428) {\n            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;\n            do {\n              *pppppppcVar26 = (code ******)0xffffffff;\n              pppppppcVar26[1] = (code ******)0xffffffff;\n              pppppppcVar26 = pppppppcVar26 + 2;\n            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);\n          }\n          pppppppcVar38 = pppppppcStack_3ec;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar44[0x21] != (code ******)0x0) {\n            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);\n            pppppppcVar6 = (code *******)0x0;\n            pppppppcVar26 = pppppppcVar2;\n            while( true ) {\n              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);\n              if (pppppppcVar38 == pppppppcVar6) break;\n              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {\n                pppppppcVar26[2] =\n                     pppppppcVar2\n                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1\n                           ) * 2];\n                pppppppcVar26[3] =\n                     pppppppcVar2\n                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +\n                      1];\n              }\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n              pppppppcVar26 = pppppppcVar26 + 2;\n            }\n          }\n          goto LAB_00028e84;\n        }\n        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {\n          bVar19 = 0 < (int)pppppppcVar44[0x13];\n        }\n        else {\n          bVar19 = false;\n        }\n        pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n        pppppppcVar38 = pppppppcVar6;\n        pppppppcStack_460 =\n             (code *******)\n             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);\n        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;\n      }\n    }\n    else if (uStack_3a0 < 0x3fffffff) {\n      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);\n      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;\n      pppppppcStack_460 = (code *******)0xc;\n    }\n    else {\n      pppppppcStack_460 = (code *******)0xc;\n    }\n  }\n  else {\n    if (uVar21 < 0xccccccd) {\n      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);\n      iStack_350 = iVar40;\n      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);\n      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;\n    }\n    pppppppcStack_460 = (code *******)0xc;\n  }\nLAB_00028e84:\n  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n  pppppppcVar22 = pppppppcVar38;\n  if (pppppppcVar44[0x13] != (code ******)0x0) {\n    FUN_0001e14c(&pppppppcStack_3c4);\n    (*(code *)ppppppcVar4[0x599c])(iStack_340);\n    (*(code *)ppppppcVar4[0x599c])(iStack_350);\n    pppppppcVar22 = pppppppcVar38;\n  }\n  FUN_0001dc20(&pppppppcStack_3c4);\nLAB_00028eb4:\n  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {\n    return pppppppcStack_460;\n  }\n  pppppcVar5 = ppppppcVar4[0x5991];\n  ppppcVar24 = ppppcStack_33c;\n  (*(code *)pppppcVar5)();\n  *(byte *)(pppppppcVar22 + 7) =\n       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |\n       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;\n  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);\n  if (iVar40 == 0) {\n    pppppppcVar26 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar26 =\n         (code *******)\n         (*(code *)pppppcVar5[0x537d])\n                   (0,(code *)((int)pppppcVar5[0x5301] +\n                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);\n  }\n  return pppppppcVar26;\ncode_r0x000291d8:\n  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;\n  goto LAB_000291e4;\nLAB_00028e48:\n  pppppppcStack_460 = (code *******)0x1;\n  goto LAB_00028e84;\nLAB_00028fb4:\n  pppppppcStack_460 = (code *******)0xc;\n  goto LAB_00028e84;\n}\n\n" comment (function_definition "code ******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {\n          pppppppcVar26 = pppppppcVar38;\n          iVar40 = FUN_00024660(param_2);\n          *param_1 = iVar40;\n          if (iVar40 == 0) {\n            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];\n          }\n          else {\n            pppppppcVar6 = (code *******)0x0;\n          }\n        }\n      }\n      else {\n        pppppppcVar6 = (code *******)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);\n    if (*unaff_s4 == (code ******)0x0) {\n      *unaff_s4 = (code ******)param_3;\n      goto LAB_00024fd0;\n    }\n    pppppppcVar31 = (code *******)(*unaff_s4)[10];\n    if (param_3 == (code *******)0x0) {\n      local_30 = *pppppppcVar31;\n      local_2c = pppppppcVar31[1];\n      local_28 = pppppppcVar31[2];\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s4 = (code ******)pppppppcVar6;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (code *******)param_3[10];\n    pppppppcVar26 = unaff_s4;\n    iVar40 = FUN_0001ae50(&local_30);\n    *param_1 = iVar40;\n    if (iVar40 == 0) {\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);\n      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s6 = (code *****)pppppppcVar6;\n      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(local_28);\n      ppppppcVar4 = pppppppcVar38[0x13];\n      goto LAB_00024fd4;\n    }\n    pppppppcVar6 = (code *******)0x0;\n  }\n  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {\n    return pppppppcVar6;\n  }\n  pppppppcVar42 = local_24;\n  puVar45 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar45 + 0x20ee4;\n  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);\n  pppppppcVar43 = (code *******)pppppppcVar42[0x15];\n  pppppppcStack_94 = (code *******)0x0;\n  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);\n  pppppppcVar25 = pppppppcVar43;\n  pppppppcVar27 = param_4;\n  pppppppcVar28 = param_4;\n  pppppppcStack_70 = param_2;\n  pppppppcStack_6c = pppppppcVar6;\n  pppppppcStack_68 = pppppppcVar36;\n  pppppppcStack_64 = pppppppcVar38;\n  pppppppcStack_60 = unaff_s4;\n  piStack_5c = param_1;\n  ppppppcStack_58 = unaff_s6;\n  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {\n    pppppppcVar6 = (code *******)0x0;\n    if (param_4[1] != (code ******)0x0) {\n      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      *ppppppcVar4 = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;\n    pppppppcVar25 = pppppppcVar26;\n    if (pppppppcVar6 == (code *******)0x0) {\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {\n        pppppppcVar25 = pppppppcVar31;\n        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);\n        pppppppcVar36 = (code *******)0x0;\n        puVar45 = puStack_d8;\n        if (pppppppcStack_a0 != (code *******)0xffffffff) {\n          unaff_s8 = (code *******)pppppppcVar42[0x15];\n          pppppppcStack_90 = (code *******)0x0;\n          if ((int)pppppppcVar6[1] < 1) {\n            pppppppcVar36 = (code *******)0x0;\n          }\n          else {\n            iStack_9c = (int)pppppppcStack_a0 * 0x14;\n            pppppppcStack_c4 = (code *******)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];\n              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||\n                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&\n                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {\n                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);\n                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);\n                pppppppcStack_c8 = pppppppcStack_a0;\n                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);\n                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);\n                do {\n                  param_4 = pppppppcVar36;\n                  if (pppppppcVar43 == (code *******)*param_4) {\n                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));\n                    if ((int)param_4[3] - (int)param_4[2] == 0) {\n                      pppppppcStack_cc =\n                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));\n                    }\n                    else {\n                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);\n                    }\n                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&\n                        (pppppppcVar25 = pppppppcStack_cc,\n                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&\n                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),\n                       puVar45 = puStack_d8, iVar40 != 0)) {\n                      pppppppcVar25 = pppppppcVar26 + 4;\n                      pppppppcStack_e0 = pppppppcStack_cc;\n                      pppppppcVar27 = pppppppcVar43;\n                      pppppppcVar28 = pppppppcVar31;\n                      pcStack_dc = pcVar46;\n                      pppppppcStack_b0 = pppppppcVar25;\n                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);\n                      puVar45 = puStack_d8;\n                      if (iVar40 == 0) {\n                        if (pppppppcStack_90 == (code *******)0x0) {\n                          pppppppcStack_90 = (code *******)*pppppppcVar26;\n                          pppppppcVar28 = (code *******)pppppppcVar26[1];\n                          pppppppcVar27 = (code *******)pppppppcVar26[2];\n                          pppppppcStack_84 = (code *******)pppppppcVar26[3];\n                          ppppppcStack_80 = pppppppcVar26[4];\n                          ppppppcStack_7c = pppppppcVar26[5];\n                          ppppppcStack_78 = pppppppcVar26[6];\n                          pppppppcVar25 = pppppppcStack_b0;\n                          pppppppcStack_8c = pppppppcVar28;\n                          pppppppcStack_88 = pppppppcVar27;\n                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        }\n                        pppppppcVar25 = pppppppcStack_c8;\n                        pppppppcStack_88 = pppppppcVar43;\n                        pppppppcStack_84 = pppppppcVar31;\n                        iVar40 = FUN_00019e64(&ppppppcStack_80);\n                        if (iVar40 == 0) {\n                          pppppppcVar36 = (code *******)0xc;\n                          puVar45 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];\n                        pppppppcVar25 = (code *******)&pppppppcStack_90;\n                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);\n                        puVar45 = puStack_d8;\n                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        pppppppcVar25 = (code *******)pppppppcVar26[1];\n                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);\n                        if ((pppppppcVar25 != (code *******)0x0) &&\n                           (pppppppcVar27 = pppppppcStack_90,\n                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),\n                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                        goto LAB_00025aa0;\n                        pppppppcVar36 = pppppppcStack_c8;\n                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;\n                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);\n                        pppppppcVar25 = (code *******)(iVar40 + -1);\n                        FUN_000188ac(&ppppppcStack_80);\n                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);\n                        puVar45 = puStack_d8;\n                      }\n                    }\n                  }\n                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);\n                  pppppppcVar36 = param_4 + 5;\n                } while (*(code *)(param_4 + 4) != (code)0x0);\n              }\n              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);\n              pppppppcVar36 = (code *******)0x0;\n            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);\nLAB_00025aa0:\n            if (pppppppcStack_90 != (code *******)0x0) {\n              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);\n              puVar45 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);\n    pppppppcVar27 = pppppppcVar31;\n    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;\n    pppppppcStack_90 = (code *******)0x0;\n    pppppppcVar27 = param_4;\n    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);\n    pppppppcVar36 = pppppppcStack_90;\n    puVar45 = puStack_d8;\n    if (pppppppcStack_90 == (code *******)0x0) {\n      pppppppcVar27 = unaff_s8 + 7;\n      if (unaff_s8[7] == (code ******)0x0) {\n        pppppppcStack_cc = unaff_s8 + 7;\n        pppppppcVar25 = (code *******)param_4[1];\n        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);\n        if (pppppppcStack_90 != (code *******)0x0) {\n          pppppppcVar36 = (code *******)0xc;\n          puVar45 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < (int)param_4[1]) {\n          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar40 = 0;\n          do {\n            pppppppcStack_90 = (code *******)0x0;\n            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);\n            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);\n            if (pppppppcStack_90 != (code *******)0x0) {\n              pppppppcVar36 = (code *******)0xc;\n              puVar45 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar40 = iVar40 + 1;\n          } while (iVar40 < (int)param_4[1]);\n        }\n      }\n      pppppppcVar27 = unaff_s8 + 7;\n      pppppppcVar25 = pppppppcVar6;\n      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);\n      puVar45 = puStack_d8;\n      pppppppcStack_b4 = pppppppcVar36;\n      pppppppcStack_94 = pppppppcVar36;\n      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n      if (pppppppcVar26[5] != (code ******)0x0) {\n        ppppppcStack_bc = pppppppcVar42[0x1d];\n        if (0 < (int)pppppppcVar26[5]) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          pppppppcStack_cc = (code *******)0x0;\n          do {\n            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;\n            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&\n               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {\n              pppppppcVar28 = (code *******)*pppppppcVar43;\n              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];\n              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {\n                if (0 < (int)param_4[1]) {\n                  ppppppcVar41 = param_4[2];\n                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];\n                  pppppppcStack_c4 = (code *******)0xffffffff;\n                  pppppppcVar25 = (code *******)0xffffffff;\n                  do {\n                    pppppppcVar38 = (code *******)*ppppppcVar41;\n                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;\n                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {\n                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {\n                        pppppppcVar25 = pppppppcVar38;\n                      }\n                    }\n                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&\n                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {\n                      pppppppcStack_c4 = pppppppcVar38;\n                    }\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                  } while (ppppppcVar41 != ppppppcVar39);\n                  if ((int)pppppppcVar25 < 0) {\n                    unaff_s8 = pppppppcStack_b4;\n                    if (-1 < (int)pppppppcStack_c4) {\n                      do {\n                        ppppppcVar41 = param_4[2];\nLAB_00025600:\n                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];\n                        pppppppcStack_c8 = pppppppcVar36;\n                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,\n                                               pppppppcStack_c4);\n                        if ((iVar40 == 0) &&\n                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,\n                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,\n                           iVar40 == 0)) {\n                          pppppppcVar25 = pppppppcStack_c8;\n                          pppppppcVar27 = param_4;\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                          unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                        }\n                        unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                      } while ((int)unaff_s8 < (int)param_4[1]);\n                    }\n                  }\n                  else {\n                    pppppppcVar27 = param_4;\n                    pppppppcVar28 = pppppppcVar6;\n                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                    puVar45 = puStack_d8;\n                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                    if ((-1 < (int)pppppppcStack_c4) &&\n                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {\n                      ppppppcVar41 = param_4[2];\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = pppppppcStack_b4;\n                if (0 < (int)param_4[1]) {\n                  do {\n                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];\n                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&\n                        (pppppppcVar28 = pppppppcVar6,\n                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))\n                       && (pppppppcVar27 = param_4,\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),\n                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                  } while ((int)unaff_s8 < (int)param_4[1]);\n                }\n              }\n            }\n            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);\n          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);\n        }\n        pppppppcStack_94 = (code *******)0x0;\n      }\n      ppppppcVar41 = *pppppppcVar26;\n      pppppppcVar25 = pppppppcVar43;\n      pppppppcVar27 = param_4;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {\n    return pppppppcVar36;\n  }\n  pcVar46 = *(code **)(puVar45 + -0x7ddc);\n  pcVar47 = FUN_00025af4;\n  pppppppcVar38 = pppppppcStack_74;\n  (*pcVar46)();\n  pcStack_f4 = pcVar47;\n  pppppppcStack_f8 = unaff_s8;\n  ppppppcStack_fc = ppppppcVar4;\n  pppppppcStack_100 = pppppppcVar43;\n  pppppppcStack_104 = pppppppcVar42;\n  pppppppcStack_108 = pppppppcVar36;\n  pppppppcStack_10c = pppppppcVar6;\n  pppppppcStack_110 = pppppppcVar31;\n  pppppppcStack_114 = param_4;\n  pppppppcStack_118 = pppppppcVar26;\n  pcStack_158 = pcVar46 + 0x205dc;\n  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);\n  pppppppcVar31 = (code *******)pppppppcVar25[3];\n  pppppppcVar26 = (code *******)pppppppcVar25[2];\n  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);\n  if (pppppppcVar6 == (code *******)0x0) {\n    pppppppcVar28 = &ppppppcStack_128;\n    pppppppcVar26 = pppppppcVar25;\n    pppppppcVar27 = pppppppcVar31;\n    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);\n    pppppppcVar6 = pppppppcStack_13c;\n    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {\n      pppppppcStack_150 = pppppppcStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);\n        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {\n          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);\n        }\n        else {\n          pppppppcStack_150 = pppppppcStack_13c;\n        }\n        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {\n          pppppppcVar26 = (code *******)0x0;\n          pppppppcVar27 = unaff_s8;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n          pppppppcVar6 = pppppppcStack_13c;\n          goto LAB_00025e98;\n        }\n        uStack_124 = 0;\n        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));\n        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);\n        if ((ppppppcVar4 != (code ******)0x0) &&\n           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          pppppppcVar43 = pppppppcStack_13c;\n          do {\n            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];\n            iStack_14c = (int)pppppppcVar26 * 8;\n            pppppppcVar28 = pppppppcVar31;\n            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {\nLAB_00025d44:\n              pppppppcVar27 = pppppppcVar31;\n              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);\n              if ((iVar40 != 0) &&\n                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {\n                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,\n                                        pppppppcVar42[3][(int)pppppppcVar26]);\n                pppppppcVar36 = (code *******)0x1;\n                if (iVar40 != 0) {\n                  ppppppcVar41 = pppppppcVar25[5];\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              ppppppcStack_148 = pppppppcVar25[3];\n              ppppppcStack_134 = pppppppcVar38[0x15];\n              pppppppcVar27 = pppppppcVar38;\n              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);\n              if ((int)pppppppcVar36 < 1) {\n                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\n              else {\n                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&\n                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==\n                     (code *****)0x0 ||\n                    (iVar40 = (*pcStack_138)((*pppppppcVar25)\n                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,\n                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))\n                   )) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\nLAB_00025c9c:\n              if (ppppppcVar41 != (code ******)0x0) {\n                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];\n                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);\n                pppppppcStack_160 = pppppppcVar26;\n                pppppppcStack_15c = pppppppcVar31;\n                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);\n                if (iVar40 != 0) goto LAB_00025cfc;\n              }\n              iVar40 = (*pcStack_130)(&ppppppcStack_128);\n              if (iVar40 == 0) {\n                pppppppcVar6 = (code *******)0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);\n        }\n        pppppppcVar28 = &ppppppcStack_128;\n        pppppppcVar26 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);\n      } while ((pppppppcVar6 == (code *******)0x0) &&\n              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n  }\nLAB_00025e98:\n  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return pppppppcVar6;\n  }\n  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar47 = FUN_00025ee8;\n  pppppppcVar34 = pppppppcStack_11c;\n  (*pcVar46)();\n  pcStack_218 = pcVar46 + 0x201e8;\n  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);\n  pppppppcStack_204 = (code *******)0x0;\n  pppppppcVar34[3] = (code ******)pppppppcVar28;\n  pppppppcVar34[2] = (code ******)0x0;\n  pppppppcVar34[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;\n  pppppppcVar32 = (code *******)*pppppppcVar34;\n  pppppppcVar29 = pppppppcVar28;\n  pppppppcStack_198 = pppppppcVar31;\n  pppppppcStack_194 = pppppppcVar38;\n  pppppppcStack_190 = pppppppcVar25;\n  pppppppcStack_18c = pppppppcVar6;\n  pppppppcStack_188 = pppppppcVar36;\n  pppppppcStack_184 = pppppppcVar42;\n  pppppppcStack_180 = pppppppcVar43;\n  ppppppcStack_17c = ppppppcVar4;\n  pppppppcStack_178 = unaff_s8;\n  pcStack_174 = pcVar47;\n  if (pppppppcVar34[1] < (code ******)0x88) {\n    pppppppcVar38 = (code *******)0x88;\n    pppppppcVar36 = pppppppcVar27;\n    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);\n    if (pppppppcVar32 != (code *******)0x0) {\n      pppppppcVar34[1] = (code ******)0x88;\n      *pppppppcVar34 = (code ******)pppppppcVar32;\n      goto LAB_00025f80;\n    }\n    pppppppcVar31 = (code *******)0xc;\n  }\n  else {\nLAB_00025f80:\n    pppppppcVar34[2] = (code ******)0x88;\n    pppppppcVar36 = (code *******)0x88;\n    pppppppcVar38 = (code *******)0x0;\n    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);\n    pppppppcVar32[0x10] = (code ******)0x1f;\n    if (pppppppcVar27 < (code *******)0xaaaaaaa) {\n      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);\n      ppppppcVar4 = (code ******)\n                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);\n      *pppppppcVar32 = ppppppcVar4;\n      if (pppppppcVar27 == (code *******)0x0) {\n        pppppppcVar6 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar6 = (code *******)0x1;\n        do {\n          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);\n        } while (pppppppcVar6 <= pppppppcVar27);\n      }\n      pppppppcVar38 = pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);\n      pppppppcVar32[8] = ppppppcVar4;\n      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);\n      pppppppcVar32[0x11] = (code ******)pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();\n      pppppppcVar32[0x17] = ppppppcVar4;\n      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);\n      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&\n         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {\n        iVar40 = 3;\n        if (pbVar7[3] == 0x2d) {\n          iVar40 = 4;\n        }\n        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);\n        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);\n        if (iVar40 == 0) {\n          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;\n      if (1 < (int)pppppppcVar32[0x17]) {\n        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {\n          pppppppcVar38 = (code *******)0x1;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);\n          pppppppcVar32[0xf] = ppppppcVar4;\n          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;\n          pppppppcVar42 = (code *******)0x0;\n          unaff_s8 = (code *******)0x1;\n          do {\n            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);\n            uVar21 = 0;\n            do {\n              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);\n              if (pppppppcVar31 != (code *******)0xffffffff) {\n                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);\n                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =\n                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);\n              }\n              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {\n                *(byte *)(pppppppcVar32 + 0x16) =\n                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;\n              }\n              uVar21 = uVar21 + 1;\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n            } while (uVar21 != 0x20);\n            pppppppcVar42 = pppppppcVar42 + 1;\n            pppppppcVar43 = (code *******)0x20;\n          } while (pppppppcVar42 != (code *******)0x20);\n        }\n        else {\n          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);\n        }\n      }\n      if ((*pppppppcVar32 != (code ******)0x0) &&\n         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar43 = (code *******)pppppppcVar34[5];\n        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);\n        bVar19 = pppppppcVar42 != (code *******)0x0;\n        unaff_s8 = (code *******)(uint)bVar19;\n        pppppppcVar36 = (code *******)0x4c;\n        pppppppcVar38 = (code *******)0x0;\n        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);\n        if (pppppppcVar43 != (code *******)0x0) {\n          unaff_s8 = (code *******)0x1;\n        }\n        cStack_1a5 = (char)unaff_s8;\n        ppppppcStack_1a0 = pppppppcVar32[0x17];\n        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);\n        pppppppcStack_1f0 = pppppppcVar26;\n        pppppppcStack_1c4 = pppppppcVar27;\n        pppppppcStack_1c0 = pppppppcVar27;\n        pppppppcStack_1bc = pppppppcVar27;\n        pppppppcStack_1b8 = pppppppcVar27;\n        pppppppcStack_1b0 = pppppppcVar43;\n        uStack_1a8 = bVar19;\n        if (0 < (int)pppppppcVar27) {\n          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);\n          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          pppppppcVar26 = apppppppcStack_1ec[0];\n        }\n        apppppppcStack_1ec[0] = pppppppcVar26;\n        if (pppppppcVar42 == (code *******)0x0) {\n          if ((int)pppppppcVar32[0x17] < 2) {\n            if (pppppppcVar43 != (code *******)0x0) {\n              FUN_00018720();\n            }\n          }\n          else {\n            FUN_0001a644(&pppppppcStack_1f0);\n          }\n        }\n        else {\n          if (1 < (int)pppppppcVar32[0x17]) {\n            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);\n            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);\n            do {\n              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);\n              pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n              if (pppppppcVar25 != (code *******)0x0) break;\n              if (((int)pppppppcVar27 <= iStack_1d0) ||\n                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),\n                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;\n              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);\n            } while (pppppppcVar25 == (code *******)0x0);\n            goto LAB_000261b4;\n          }\n          FUN_0001a578(&pppppppcStack_1f0);\n        }\nLAB_000263f8:\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar34[6] = (code ******)0x0;\n        pppppppcVar43 = (code *******)*pppppppcVar34;\n        pppppppcVar43[0x20] = (code ******)pppppppcVar28;\n        pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);\n        pppppppcStack_21c = (code *******)&pppppppcStack_204;\n        uStack_220 = 0;\n        pppppppcVar38 = pppppppcVar34;\n        pppppppcVar6 = (code *******)\n                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);\n        pppppppcVar29 = (code *******)0x2;\n        if (pppppppcStack_204 == (code *******)0x0) {\n          pppppppcVar36 = (code *******)0x0;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar6 != (code *******)0x0) {\nLAB_000264d8:\n            pppppppcVar29 = (code *******)0x10;\n            pppppppcVar38 = pppppppcVar6;\n            pppppppcVar36 = pppppppcVar27;\n            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);\n          }\n          if ((pppppppcVar27 == (code *******)0x0) ||\n             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {\n            pppppppcStack_204 = (code *******)0xc;\n            goto LAB_0002671c;\n          }\n          pppppppcVar32[0xd] = (code ******)pppppppcVar31;\n          pppppppcVar27 = (code *******)*pppppppcVar34;\n          ppppppcVar4 = pppppppcVar27[1];\n          iVar40 = (int)ppppppcVar4 << 2;\n          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);\n          pppppppcVar27[3] = (code ******)pppppppcVar28;\n          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);\n          pppppppcVar27[4] = (code ******)pppppppcVar43;\n          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);\n          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[5] = (code ******)pppppppcVar26;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[6] = ppppppcVar4;\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar28 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar43 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar26 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (ppppppcVar4 == (code ******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else {\n            ppppppcVar4 = (code ******)\n                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);\n            pppppppcVar27[0x21] = ppppppcVar4;\n            if (ppppppcVar4 != (code ******)0x0) {\n              ppppppcVar4 = (code ******)0x0;\n              if (pppppppcVar34[6] != (code ******)0x0) {\n                do {\n                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;\n                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                } while (ppppppcVar4 < pppppppcVar34[6]);\n              }\n              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,\n                           pppppppcVar27);\n              ppppppcVar4 = pppppppcVar34[6];\n              if (ppppppcVar4 == (code ******)0x0) {\nLAB_0002672c:\n                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);\n                pppppppcVar27[0x21] = (code ******)0x0;\n              }\n              else {\n                ppppppcVar41 = pppppppcVar27[0x21];\n                if (*ppppppcVar41 == (code *****)0x0) {\n                  ppppppcVar39 = (code ******)0x0;\n                  do {\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                    if (ppppppcVar4 == ppppppcVar39) {\n                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;\n                      break;\n                    }\n                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);\n                }\n              }\n            }\n            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);\n            pppppppcVar25 =\n                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);\n            pppppppcVar36 = pppppppcVar27;\n            if (pppppppcVar25 == (code *******)0x0) {\n              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);\n              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);\n              if (pppppppcVar25 == (code *******)0x0) {\n                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);\n                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);\n                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);\n                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);\n                pppppppcVar25 = pppppppcVar26;\n                if (pppppppcVar26 == (code *******)0x0) {\n                  pppppppcVar43 = (code *******)0x0;\n                  unaff_s8 = &ppppppcStack_1fc;\n                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);\n                  pppppppcVar6 = (code *******)0x0;\n                  pcVar46 = pcStack_218;\nLAB_0002676c:\n                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {\nLAB_00026778:\n                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);\n                    pppppppcVar29 = (code *******)0x1;\n                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==\n                        (code *****)0x0) {\n                      pppppppcVar38 = pppppppcVar27;\n                      pppppppcVar36 = pppppppcVar6;\n                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);\n                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;\n                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);\n                      pcVar46 = pcStack_218;\n                      if (pppppppcVar28[1] == (code ******)0x0) {\n                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                        pppppppcVar43 = (code *******)0x1;\n                        pcVar46 = pcStack_218;\n                      }\n                    }\n                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n                    goto LAB_0002676c;\n                  }\n                  if (pppppppcVar43 != (code *******)0x0) {\n                    pppppppcVar43 = (code *******)0x0;\n                    pppppppcVar6 = (code *******)0x0;\n                    goto LAB_00026778;\n                  }\n                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&\n                      (pppppppcVar34[6] != (code ******)0x0)) &&\n                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  else {\n                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  ppppppcVar4 = (code ******)\n                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);\n                  pppppppcVar27[7] = ppppppcVar4;\n                  if (ppppppcVar4 == (code ******)0x0) {\n                    pppppppcVar25 = (code *******)0xc;\n                    goto LAB_000261b4;\n                  }\n                  pcVar46 = pcStack_218;\n                  if (pppppppcVar6 != (code *******)0x0) {\n                    iVar40 = 0;\n                    ppppppcVar4 = (code ******)0x0;\n                    do {\n                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);\n                      *pcVar47 = (code)0x0;\n                      pcVar47[1] = (code)0x0;\n                      pcVar47[2] = (code)0x0;\n                      pcVar47[3] = (code)0x0;\n                      pcVar47[4] = (code)0x0;\n                      pcVar47[5] = (code)0x0;\n                      pcVar47[6] = (code)0x0;\n                      pcVar47[7] = (code)0x0;\n                      pcVar47[8] = (code)0x0;\n                      pcVar47[9] = (code)0x0;\n                      pcVar47[10] = (code)0x0;\n                      pcVar47[0xb] = (code)0x0;\n                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                      iVar40 = iVar40 + 0xc;\n                    } while (ppppppcVar4 < pppppppcVar27[2]);\n                    if (pppppppcVar27[2] != (code ******)0x0) {\n                      unaff_s8 = (code *******)0x0;\n                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);\n                      pppppppcStack_210 = (code *******)0x0;\n                      do {\n                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))\n                        ;\n                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {\n                          pppppppcVar28 = (code *******)0x0;\n                          do {\n                            pppppppcVar38 = pppppppcStack_210;\n                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);\n                            pppppppcVar25 = (code *******)0xc;\n                            if (iVar40 == 0) goto LAB_000261b4;\n                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);\n                            pppppppcVar6 = pppppppcVar6 + 1;\n                            pcVar46 = pcStack_218;\n                          } while ((int)pppppppcVar28 <\n                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));\n                        }\n                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);\n                        unaff_s8 = unaff_s8 + 3;\n                      } while (pppppppcStack_210 < pppppppcVar27[2]);\n                    }\n                  }\nLAB_00026918:\n                  pppppppcStack_204 = (code *******)0x0;\n                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&\n                      (pppppppcVar42 == (code *******)0x0)) &&\n                     (pppppppcVar34[5] == (code ******)0x0)) {\n                    pppppppcVar6 = pppppppcVar43;\n                    if (pppppppcVar32[2] != (code ******)0x0) {\n                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);\n                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00026a88. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                        pppppppcVar26 =\n                             (code *******)\n                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();\n                        return pppppppcVar26;\n                      }\n                      (**(code **)(pcVar46 + -0x7ea4))(0);\n                      if (pppppppcVar6 != (code *******)0x0) {\n                        pppppppcVar36 = (code *******)0x7;\n                        pppppppcVar26 = (code *******)0x0;\n                        do {\n                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;\n                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {\n                            if (*(char *)ppppppcVar4 < '\0') {\n                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);\n                            }\n                          }\n                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {\n                            *(char *)(ppppppcVar4 + 1) = '\a';\n                          }\n                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);\n                        } while (pppppppcVar26 < pppppppcVar32[2]);\n                      }\n                    }\n                    pppppppcVar32[0x17] = (code ******)0x1;\n                    if (0 < (int)pppppppcVar32[0x13]) {\n                      pppppppcVar6 = (code *******)0x1;\n                    }\n                    *(byte *)(pppppppcVar32 + 0x16) =\n                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |\n                         (byte)(((uint)pppppppcVar6 & 1) << 6);\n                  }\n                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];\n                  pppppppcVar32[0x12] = ppppppcVar4;\n                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);\n                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);\n                  pppppppcVar6 = pppppppcVar31;\n                  pppppppcStack_200 = pppppppcVar31;\n                  if (pppppppcVar31 == (code *******)0x0) {\n                    if ((0 < (int)pppppppcVar32[0x13]) &&\n                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {\n                      pppppppcVar42 = &ppppppcStack_1fc;\n                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);\n                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);\n                      pppppppcVar27 = (code *******)0x0;\n                      do {\n                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];\n                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);\n                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {\n                          iVar40 = 0;\n                          piVar8 = piStack_1f4;\n                          if (iStack_1f8 < 1) {\nLAB_00026bb4:\n                            if (iVar40 != iStack_1f8) {\n                              pppppppcVar26 =\n                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];\n                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);\n                              if (iVar40 == 0) {\n                                pppppppcVar38 =\n                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);\n                                pppppppcVar27 =\n                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);\n                                pppppppcVar6 = pppppppcVar27;\n                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;\n                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&\n                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;\n                              iVar40 = iVar40 + 1;\n                              piVar8 = piVar8 + 1;\n                            } while (iStack_1f8 != iVar40);\n                          }\n                        }\n                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                      } while ((int)pppppppcVar27 < iStack_1f8);\n                    }\n                    pppppppcVar29 = (code *******)0x0;\n                    pppppppcVar36 = &ppppppcStack_1fc;\n                    pppppppcVar38 = pppppppcVar32;\n                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);\n                    pppppppcVar32[9] = ppppppcVar4;\n                    pppppppcVar6 = pppppppcStack_200;\n                    if (ppppppcVar4 != (code ******)0x0) {\n                      pppppppcVar29 = (code *******)0x1;\n                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar32[10] = ppppppcVar4;\n                      }\n                      else {\n                        pppppppcVar42 = &ppppppcStack_1fc;\n                        pppppppcVar28 = (code *******)&pppppppcStack_200;\n                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);\n                        pppppppcVar32[10] = ppppppcVar4;\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar29 = (code *******)0x6;\n                        pppppppcVar38 = pppppppcVar32;\n                        pppppppcVar36 = pppppppcVar42;\n                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar6 = pppppppcStack_200;\n                        if (((pppppppcVar32[10] == (code ******)0x0) ||\n                            (pppppppcVar32[0xb] == (code ******)0x0)) ||\n                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                      pppppppcVar6 = pppppppcVar31;\n                    }\n                  }\nLAB_00026ce0:\n                  pppppppcStack_204 = pppppppcVar6;\n                  FUN_0001db98(pppppppcVar34);\n                  FUN_0001dc20(&pppppppcStack_1f0);\n                  pppppppcVar31 = pppppppcStack_204;\n                  if (pppppppcStack_204 != (code *******)0x0) {\n                    FUN_0001dc9c(pppppppcVar32);\n                    *pppppppcVar34 = (code ******)0x0;\n                    pppppppcVar34[1] = (code ******)0x0;\n                    pppppppcVar31 = pppppppcStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pppppppcVar36 = (code *******)0x0;\n          if (pppppppcVar6 != (code *******)0x0) {\n            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          pppppppcVar32[0xd] = (code ******)0x0;\n          pppppppcVar25 = pppppppcStack_204;\n        }\nLAB_000261b4:\n        pppppppcStack_204 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        FUN_0001db98(pppppppcVar34);\n        FUN_0001dc20(&pppppppcStack_1f0);\n        FUN_0001dc9c(pppppppcVar32);\n        *pppppppcVar34 = (code ******)0x0;\n        pppppppcVar34[1] = (code ******)0x0;\n        pppppppcVar31 = pppppppcStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    pppppppcStack_204 = (code *******)0xc;\n    FUN_0001dc9c(pppppppcVar32);\n    *pppppppcVar34 = (code ******)0x0;\n    pppppppcVar34[1] = (code ******)0x0;\n    pppppppcVar31 = pppppppcStack_204;\n  }\nLAB_00026d24:\n  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {\n    return pppppppcVar31;\n  }\n  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);\n  uVar48 = 0x26e9c;\n  pppppppcVar31 = pppppppcStack_19c;\n  (*pcVar46)();\n  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);\n  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);\n  pppppppcVar25 = pppppppcVar38;\n  pppppppcStack_258 = pppppppcVar32;\n  pppppppcStack_254 = pppppppcVar34;\n  pppppppcStack_250 = pppppppcVar27;\n  pppppppcStack_24c = pppppppcVar6;\n  pppppppcStack_248 = pppppppcVar28;\n  pppppppcStack_244 = pppppppcVar42;\n  pppppppcStack_240 = pppppppcVar43;\n  pppppppcStack_23c = pppppppcVar26;\n  pppppppcStack_238 = unaff_s8;\n  uStack_234 = uVar48;\n  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);\n  if (pppppppcStack_2ec == (code *******)0x0) {\n    pppppppcVar43 = (code *******)0x0;\n  }\n  else {\n    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;\n    pppppppcVar38[0xb] = (code ******)0x0;\n    pppppppcVar38[0xc] = (code ******)0x0;\n    pppppppcStack_2e4 = pppppppcStack_2ec;\n    FUN_0001a53c(appppppcStack_2bc);\n    pppppppcVar43 = pppppppcStack_300;\n    if ((int)pppppppcVar38[2] < 1) {\n      pppppppcVar27 = (code *******)0x0;\n    }\n    else {\n      pppppppcVar27 = (code *******)0x0;\n      pppppppcStack_2f4 = (code *******)0x0;\n      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;\n      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;\n      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;\n      do {\n        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);\n        pppppppcVar6 = (code *******)\n                       (*pppppppcVar31 +\n                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);\n        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);\n        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);\n        if (pppppppcVar26 == (code *******)0x1) {\n          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);\n          pppppppcVar43 = pppppppcStack_300;\nLAB_00026f88:\n          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;\n          if (((uint)pppppppcVar32 & 0x20) != 0) {\n            pppppppcVar34 = appppppcStack_2bc;\n            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);\n            FUN_0001a53c(pppppppcVar34);\n            pppppppcVar43 = pppppppcStack_300;\n            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;\n            FUN_00018540(appppppcStack_2bc,10);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n          if (((uint)pppppppcVar32 & 0x80) == 0) {\n            if (((uint)pppppppcVar32 & 4) == 0) {\nLAB_0002700c:\n              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);\n              if (pppppppcVar32 == (code *******)0x0) {\nLAB_00027078:\n                if ((int)pppppppcVar27 < 1) {\n                  pppppppcVar34 = (code *******)0x0;\n                }\n                else {\n                  pppppppcVar32 = pppppppcStack_2ec + 0x300;\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];\n                  pppppppcVar42 = pppppppcStack_2ec;\n                  do {\n                    if ((pppppppcVar26 != (code *******)0x1) ||\n                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),\n                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {\n                      pppppppcVar37 = appppppcStack_2bc;\n                      uVar21 = 0;\n                      pppppppcVar25 = pppppppcVar37;\n                      pppppppcVar36 = pppppppcVar32;\n                      pppppppcVar29 = appppppcStack_2bc + 8;\n                      do {\n                        ppppppcVar4 = *pppppppcVar25;\n                        ppppppcVar41 = *pppppppcVar36;\n                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);\n                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;\n                        pppppppcVar25 = pppppppcVar25 + 1;\n                        pppppppcVar36 = pppppppcVar36 + 1;\n                        pppppppcVar29 = pppppppcVar29 + 1;\n                      } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                      if (uVar21 != 0) {\n                        pppppppcVar36 = appppppcStack_27c;\n                        pppppppcVar28 = (code *******)0x0;\n                        uVar21 = 0;\n                        pppppppcVar43 = pppppppcVar32;\n                        do {\n                          pppppppcVar29 = (code *******)*pppppppcVar37;\n                          ppppppcVar4 = *pppppppcVar43;\n                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);\n                          *pppppppcVar36 = ppppppcVar41;\n                          uVar21 = uVar21 | (uint)ppppppcVar41;\n                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);\n                          *pppppppcVar37 = ppppppcVar4;\n                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);\n                          pppppppcVar37 = pppppppcVar37 + 1;\n                          pppppppcVar43 = pppppppcVar43 + 1;\n                          pppppppcVar36 = pppppppcVar36 + 1;\n                        } while (pppppppcVar43 != pppppppcVar32 + 8);\n                        if (uVar21 != 0) {\n                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                          *pppppppcVar43 = appppppcStack_27c[0];\n                          pppppppcVar43[1] = appppppcStack_27c[1];\n                          pppppppcVar43[2] = appppppcStack_27c[2];\n                          pppppppcVar43[3] = appppppcStack_27c[3];\n                          pppppppcVar43[4] = ppppppcStack_26c;\n                          pppppppcVar43[5] = ppppppcStack_268;\n                          pppppppcVar43[6] = ppppppcStack_264;\n                          pppppppcVar43[7] = ppppppcStack_260;\n                          *pppppppcVar32 = appppppcStack_2bc[8];\n                          pppppppcVar32[1] = appppppcStack_2bc[9];\n                          pppppppcVar32[2] = appppppcStack_2bc[10];\n                          pppppppcVar32[3] = appppppcStack_2bc[0xb];\n                          pppppppcVar32[4] = ppppppcStack_28c;\n                          pppppppcVar32[5] = ppppppcStack_288;\n                          pppppppcVar32[6] = ppppppcStack_284;\n                          pppppppcVar32[7] = ppppppcStack_280;\n                          iVar40 = (*(code *)ppppppcStack_2dc)\n                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                              pppppppcVar42);\n                          if (iVar40 != 0) goto LAB_000275d4;\n                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                        }\n                        iVar40 = (*(code *)ppppppcStack_2e8)\n                                           (pppppppcVar42,\n                                            *(undefined4 *)\n                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                        if (iVar40 == 0) goto LAB_000275d4;\n                        pppppppcVar43 = pppppppcStack_300;\n                        if (pppppppcVar28 == (code *******)0x0) break;\n                      }\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar32 = pppppppcVar32 + 8;\n                    pppppppcVar42 = pppppppcVar42 + 3;\n                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);\n                }\n                if (pppppppcVar27 == pppppppcVar34) {\n                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                  *pppppppcVar43 = appppppcStack_2bc[0];\n                  pppppppcVar43[1] = appppppcStack_2bc[1];\n                  pppppppcVar43[2] = appppppcStack_2bc[2];\n                  pppppppcVar43[3] = appppppcStack_2bc[3];\n                  pppppppcVar43[4] = appppppcStack_2bc[4];\n                  pppppppcVar43[5] = appppppcStack_2bc[5];\n                  pppppppcVar43[6] = appppppcStack_2bc[6];\n                  pppppppcVar43[7] = appppppcStack_2bc[7];\n                  iVar40 = (*(code *)ppppppcStack_2d8)\n                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                      *(undefined4 *)\n                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                  if (iVar40 != 0) {\nLAB_000275d4:\n                    if ((int)pppppppcVar27 < 1) {\n                      pppppppcVar27 = (code *******)0xffffffff;\n                      pppppppcVar43 = pppppppcStack_300;\n                    }\n                    else {\n                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n                      pppppppcVar32 = pppppppcStack_2ec;\n                      do {\n                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n                        pppppppcVar32 = pppppppcVar32 + 3;\n                        pppppppcVar27 = (code *******)0xffffffff;\n                        pppppppcVar43 = pppppppcStack_300;\n                      } while (pppppppcVar32 != pppppppcVar34);\n                    }\n                    goto LAB_00027610;\n                  }\n                  FUN_0001a53c(appppppcStack_2bc);\n                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                  pppppppcVar43 = pppppppcStack_300;\n                }\n              }\n              else if ((pppppppcVar26 == (code *******)0x1) &&\n                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {\n                FUN_0001a53c(appppppcStack_2bc);\n                pppppppcVar43 = pppppppcStack_300;\n              }\n              else {\n                pppppppcVar25 = appppppcStack_2bc;\n                if ((int)pppppppcVar31[0x17] < 2) {\n                  pppppppcVar37 = pppppppcVar31 + 0x18;\n                  pppppppcVar29 = appppppcStack_2bc + 8;\n                  uVar21 = 0;\n                  do {\n                    ppppppcVar4 = *pppppppcVar37;\n                    pppppppcVar36 = (code *******)*pppppppcVar25;\n                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);\n                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar37 = pppppppcVar37 + 1;\n                  } while (pppppppcVar25 != pppppppcVar29);\n                }\n                else {\n                  pppppppcVar36 = pppppppcVar31 + 0x18;\n                  ppppppcVar4 = pppppppcVar31[0xf];\n                  uVar21 = 0;\n                  do {\n                    pppppppcVar29 = (code *******)*pppppppcVar25;\n                    ppppppcVar41 = (code ******)\n                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &\n                                   (uint)pppppppcVar29);\n                    *pppppppcVar25 = ppppppcVar41;\n                    uVar21 = uVar21 | (uint)ppppppcVar41;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar36 = pppppppcVar36 + 1;\n                    ppppppcVar4 = ppppppcVar4 + 1;\n                  } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                }\n                if (uVar21 != 0) goto LAB_00027078;\n              }\n            }\n            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))\n            {\n              FUN_0001a53c(appppppcStack_2bc);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            else {\n              ppppppcVar4 = (code ******)appppppcStack_2bc;\n              if ((int)pppppppcVar31[0x17] < 2) {\n                pppppppcVar25 = appppppcStack_2bc;\n                pppppppcVar37 = pppppppcVar31 + 0x18;\n                pppppppcVar29 = appppppcStack_2bc + 8;\n                uVar21 = 0;\n                do {\n                  ppppppcVar4 = *pppppppcVar25;\n                  pppppppcVar36 = (code *******)*pppppppcVar37;\n                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);\n                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;\n                  pppppppcVar25 = pppppppcVar25 + 1;\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (pppppppcVar25 != pppppppcVar29);\n              }\n              else {\n                pppppppcVar36 = pppppppcVar31 + 0x18;\n                ppppppcVar41 = pppppppcVar31[0xf];\n                uVar21 = 0;\n                do {\n                  pppppppcVar29 = (code *******)*ppppppcVar4;\n                  pppppcVar5 = (code *****)\n                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)\n                  ;\n                  *ppppppcVar4 = pppppcVar5;\n                  uVar21 = uVar21 | (uint)pppppcVar5;\n                  ppppppcVar4 = ppppppcVar4 + 1;\n                  pppppppcVar36 = pppppppcVar36 + 1;\n                  ppppppcVar41 = ppppppcVar41 + 1;\n                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);\n              }\n              if (uVar21 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            FUN_0001a53c(appppppcStack_2bc);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n        }\n        else {\n          if (pppppppcVar26 == (code *******)0x3) {\n            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);\n            pppppppcVar43 = pppppppcStack_300;\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)&DAT_00000005) {\n            if ((int)pppppppcVar31[0x17] < 2) {\n              appppppcStack_2bc[0] = (code ******)0xffffffff;\n              appppppcStack_2bc[1] = (code ******)0xffffffff;\n              appppppcStack_2bc[2] = (code ******)0xffffffff;\n              appppppcStack_2bc[3] = (code ******)0xffffffff;\n              appppppcStack_2bc[4] = (code ******)0xffffffff;\n              appppppcStack_2bc[5] = (code ******)0xffffffff;\n              appppppcStack_2bc[6] = (code ******)0xffffffff;\n              appppppcStack_2bc[7] = (code ******)0xffffffff;\n            }\n            else {\n              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)0x7) {\n            appppppcStack_2bc[0] = (code ******)0xffffffff;\n            appppppcStack_2bc[1] = (code ******)0xffffffff;\n            appppppcStack_2bc[2] = (code ******)0xffffffff;\n            appppppcStack_2bc[3] = (code ******)0xffffffff;\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)0xfffffbff;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);\n      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);\n      if (0 < (int)pppppppcVar27) {\n        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);\n        pppppppcStack_2cc = pppppppcStack_2f8;\n        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))\n        {\n          iStack_2d4 = (int)pppppppcVar27 * 0xc;\n          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);\n          if (pppppppcStack_2f0 != (code *******)0x0) {\n            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;\n            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;\n            FUN_0001a53c(appppppcStack_27c);\n            pppppppcVar42 = pppppppcStack_2ec + 1;\n            pppppppcStack_2f4 = pppppppcStack_2f8;\n            ppppppcStack_2d8 = (code ******)0x0;\n            pppppppcVar28 = &ppppppcStack_2c8;\n            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);\n            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;\n            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;\n            do {\n              uStack_2c4 = 0;\n              if (0 < (int)*pppppppcVar42) {\n                pppppppcVar6 = (code *******)0xffffffff;\n                pppppppcVar43 = pppppppcStack_2f8;\n                do {\n                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=\n                      (code *****)0xffffffff) {\n                    pppppppcVar25 =\n                         (code *******)\n                         (pppppppcVar31[6] +\n                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);\n                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);\n                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;\n                  }\n                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n                  pppppppcVar29 = (code *******)0x0;\n                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);\n              }\n              pppppppcVar29 = (code *******)0x0;\n              pppppppcVar25 = pppppppcVar31;\n              pppppppcVar36 = pppppppcVar28;\n              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n              pppppppcVar43 = pppppppcStack_2f4;\n              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;\n              *pppppppcVar6 = ppppppcVar4;\n              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                goto LAB_00027798;\n              }\n              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;\n                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;\n              }\n              else {\n                pppppppcVar29 = (code *******)0x1;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                  goto LAB_00027798;\n                }\n                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {\n                  ppppppcStack_2d8 = (code ******)0x1;\n                }\n                pppppppcVar29 = (code *******)0x2;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) &&\n                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))\n                goto LAB_00027794;\n              }\n              pppppppcVar32 = pppppppcStack_2ec;\n              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);\n              (*(code *)ppppppcStack_2dc)\n                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);\n              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n              pppppppcVar42 = pppppppcVar42 + 3;\n            } while (pppppppcStack_2f4 != pppppppcVar27);\n            pppppppcVar25 = (code *******)0x100;\n            if (ppppppcStack_2d8 == (code ******)0x0) {\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xb] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) {\nLAB_00027794:\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                pppppppcVar43 = pppppppcVar6;\nLAB_00027798:\n                (*(code *)ppppppcVar4)(pppppppcStack_2f0);\n                pppppppcVar6 = pppppppcVar43;\n                goto LAB_000277a4;\n              }\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar31 = pppppppcVar31 + 0x18;\n              pppppppcVar25 = (code *******)0x0;\n              pppppppcVar43 = pppppppcVar32;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                pppppppcVar29 = pppppppcVar25;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar36 = pppppppcStack_2f8;\n                      pppppppcVar34 = pppppppcVar43;\n                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {\n                        do {\n                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);\n                          pppppppcVar37 = pppppppcVar34 + 0x308;\n                          pppppppcVar34 = pppppppcVar34 + 8;\n                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);\n                      }\n                      else {\n                        pppppppcVar36 = (code *******)0x0;\n                      }\n                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2f0;\n                      }\n                      else {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2e4;\n                      }\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 8;\n                pppppppcVar31 = pppppppcVar31 + 1;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar25 != (code *******)0x100);\n            }\n            else {\n              pppppppcVar25 = (code *******)0x200;\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xc] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar25 = pppppppcVar28;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  pppppppcVar29 = pppppppcVar25;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar34 = (code *******)0x0;\n                      ppppppcVar41 = pppppppcVar43[0x300];\n                      pppppppcVar37 = pppppppcVar43;\n                      pppppppcVar2 = pppppppcStack_2f8;\n                      while ((uVar21 & (uint)ppppppcVar41) == 0) {\n                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);\n                        pppppppcVar36 = pppppppcVar37 + 8;\n                        ppppppcVar41 = pppppppcVar37[0x308];\n                        pppppppcVar37 = pppppppcVar36;\n                        pppppppcVar2 = pppppppcVar34;\n                      }\n                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];\n                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = pppppppcVar29 + 1;\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 0x20;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar28 + 0x100 != pppppppcVar25);\n            }\n            pppppppcVar25 = (code *******)0xa;\n            iVar40 = FUN_00018598(appppppcStack_27c);\n            if (iVar40 != 0) {\n              pppppppcVar43 = pppppppcStack_2ec + 0x300;\n              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);\n              do {\n                pppppppcVar42 = pppppppcStack_2f8;\n                pppppppcVar25 = (code *******)0xa;\n                iVar40 = FUN_00018598(pppppppcVar43);\n                if (iVar40 != 0) {\n                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];\n                  pppppppcVar28[10] = ppppppcVar4;\n                  if (ppppppcStack_2d8 != (code ******)0x0) {\n                    pppppppcVar28[0x10a] = ppppppcVar4;\n                  }\n                  break;\n                }\n                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);\n                pppppppcVar43 = pppppppcVar43 + 8;\n              } while (pppppppcStack_2f8 != pppppppcVar27);\n            }\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);\n            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);\n            do {\n              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n              pppppppcVar32 = pppppppcVar32 + 3;\n            } while (pppppppcVar34 != pppppppcVar32);\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n            pppppppcVar43 = (code *******)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n        pppppppcVar32 = pppppppcStack_2ec;\n        do {\n          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n          pppppppcVar32 = pppppppcVar32 + 3;\n        } while (pppppppcVar32 != pppppppcVar34);\n        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n        pppppppcVar43 = (code *******)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);\n    pppppppcVar25 = (code *******)0x100;\n    if (pppppppcVar27 == (code *******)0x0) {\n      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n      pppppppcVar38[0xb] = ppppppcVar4;\n      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);\n    }\n    else {\n      pppppppcVar43 = (code *******)0x0;\n    }\n  }\nLAB_00027804:\n  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {\n    return pppppppcVar43;\n  }\n  ppppppcVar4 = pppppppcStack_300[-0x1f77];\n  pcVar46 = FUN_00027cb0;\n  pppppppcVar22 = pppppppcStack_25c;\n  (*(code *)ppppppcVar4)();\n  pppppppcVar2 = pppppppcStack_2f4;\n  pppppppcVar37 = pppppppcStack_300;\n  ppppcStack_33c = *ppppppcVar4[0x5999];\n  pppppppcVar44 = (code *******)*pppppppcVar22;\n  pppppppcVar43 = (code *******)0x0;\n  pppppppcStack_338 = pppppppcVar32;\n  pppppppcStack_334 = pppppppcVar34;\n  pppppppcStack_330 = pppppppcVar27;\n  pppppppcStack_32c = pppppppcVar6;\n  pppppppcStack_328 = pppppppcVar28;\n  pppppppcStack_324 = pppppppcVar42;\n  pppppppcStack_320 = pppppppcVar31;\n  pppppppcStack_31c = pppppppcVar26;\n  pppppppcStack_318 = pppppppcVar38;\n  pcStack_314 = pcVar46;\n  pppppppcStack_308 = pppppppcVar36;\n  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);\n  ppppppcStack_458 = pppppppcVar22[4];\n  if (ppppppcStack_458 != (code ******)0x0) {\n    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if (pppppppcVar29 == pppppppcVar37) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n  }\n  if (pppppppcVar22[6] < pppppppcStack_2f8) {\n    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));\n  }\n  else {\n    pcStack_428 = (code *)0x0;\n  }\n  pppppppcStack_370 = pppppppcVar44;\n  if (pppppppcVar22[2] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[9] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[10] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[0xb] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar43 = (code *******)pppppppcVar44[0xc];\n  if (pppppppcVar43 == (code *******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar26 = pppppppcVar37;\n  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&\n      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))\n     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&\n         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,\n         pppppppcVar37 != (code *******)0x0)))) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);\n  if (pppppppcVar6 == (code *******)0x0) {\n    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;\n  }\n  else {\n    bVar19 = true;\n  }\n  ppppppcVar41 = pppppppcVar22[5];\n  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);\n  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];\n  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);\n  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {\n    pppppppcVar36 = pppppppcStack_374;\n  }\n  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);\n  pppppppcStack_394 = pppppppcStack_308;\n  pppppppcStack_398 = pppppppcStack_308;\n  bStack_379 = bStack_37c;\n  if (ppppppcVar41 != (code ******)0x0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);\n  pppppppcStack_38c = pppppppcStack_308;\n  pppppppcStack_390 = pppppppcStack_308;\n  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);\n  if (pppppppcVar38 == (code *******)0x0) {\n    pppppppcVar43 = pppppppcVar36;\n  }\n  pppppppcStack_3c4 = pppppppcVar25;\n  ppppppcStack_384 = ppppppcVar41;\n  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);\n  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n  pppppppcStack_380 = pppppppcVar44 + 0x18;\n  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);\n  pppppppcVar36 = (code *******)0x0;\n  pppppppcStack_3a8 = pppppppcVar36;\n  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {\n    pppppppcStack_3a8 = pppppppcStack_308;\n  }\n  pppppppcStack_38c = pppppppcStack_2fc;\n  pppppppcStack_390 = pppppppcStack_2fc;\n  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);\n  ppppppcVar39 = pppppppcVar44[0x13];\n  uVar21 = (int)ppppppcVar39 * 2;\n  pppppppcStack_36c = pppppppcStack_2f0;\n  pppppppcStack_368 = (code *******)0xffffffff;\n  pppppppcStack_3a4 = pppppppcStack_3a8;\n  if ((int)uVar21 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar21;\n    uStack_344 = uVar21;\n    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {\n      pppppppcStack_360 = (code *******)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if (((uint)pppppppcStack_2f0 & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar40 = 1;\n      pppppppcVar31 = pppppppcVar29;\n      if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n        iVar40 = -1;\n        pppppppcVar31 = pppppppcVar26;\n      }\n      pppppppcVar28 = pppppppcVar26;\n      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {\n        pppppppcVar28 = pppppppcVar29;\n      }\n      ppppppcVar39 = pppppppcVar44[0x17];\n      uVar21 = 8;\n      if (ppppppcStack_458 != (code ******)0x0) {\n        if (ppppppcVar39 == (code ******)0x1) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        pppppppcVar43 = (code *******)0x0;\n        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {\n          pppppppcVar43 = (code *******)0x2;\n        }\n        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |\n                 (uint)pppppppcVar43;\n      }\n      pppppppcStack_3ec = pppppppcVar29;\n      if ((int)pppppppcVar29 < (int)pppppppcVar31) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar36 = (code *******)&pppppppcStack_3ec;\n        if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n          pppppppcVar36 = (code *******)0x0;\n        }\n        pppppcVar5 = ppppppcVar4[0x594e];\n        pppppcVar9 = ppppppcVar4[0x5916];\nLAB_000291e4:\n        pppppppcVar26 = pppppppcStack_308;\n        if (uVar21 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x000291fc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          pppppppcVar26 =\n               (code *******)\n               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();\n          return pppppppcVar26;\n        }\n        while( true ) {\n          pppppppcVar27 = pppppppcStack_3ec;\n          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);\n          pppppppcVar38 = pppppppcStack_2f0;\n          if (pppppppcStack_3a4 <= pppppppcVar42) {\n            pppppppcVar43 = pppppppcStack_3ec;\n            pppppppcStack_460 =\n                 (code *******)\n                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);\n          }\n          if ((int)pppppppcVar27 < (int)pppppppcVar26) {\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);\n          }\n          else {\n            uVar10 = 0;\n          }\n          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);\n          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;\n          pppppppcStack_3ec = pppppppcVar27;\n          if ((int)pppppppcVar27 < (int)pppppppcVar31) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n          if ((int)pppppppcVar28 < (int)pppppppcVar27) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          pppppppcVar43 = pppppppcStack_3ec;\n          pppppppcVar38 = pppppppcStack_2f0;\n          pppppppcVar42 =\n               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n          pppppppcVar27 = pppppppcStack_370;\n          pppppppcVar26 = pppppppcStack_39c;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;\n          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          pppppppcStack_35c = (code *******)0x0;\n          pppppppcStack_448 = pppppppcStack_39c;\n          pppppppcStack_3e8 = (code *******)0x0;\n          pppppppcVar32 = (code *******)pppppppcStack_370[9];\n          pppppppcVar38 = pppppppcStack_36c;\n          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;\n          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n          if ((uVar10 & 1) == 0) {\n            if (uVar10 == 0) break;\n            if ((uVar10 & 6) == 6) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xc];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 2) != 0) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xb];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 4) == 0) break;\n            pppppppcVar38 = (code *******)pppppppcVar32[10];\n            pppppppcVar43 = pppppppcVar27;\n            pppppppcVar32 =\n                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);\n            if (pppppppcVar32 != (code *******)0x0) break;\n            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n            pppppcVar30 = ppppppcVar4[0x5916];\n          }\n          else {\n            pppppppcVar32 = (code *******)pppppppcVar27[10];\nLAB_000283bc:\n            pppppcVar30 = ppppppcVar4[0x5916];\n            if (pppppppcVar32 != (code *******)0x0) break;\n          }\n          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n          pppppppcStack_3ec =\n               (code *******)\n               (*(code *)ppppppcVar4[0x595c])\n                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);\n          if (pppppppcStack_3ec == pppppppcVar28) {\n            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {\n              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);\n            }\n            else {\n              uVar10 = 0;\n            }\n            if (ppppppcVar41 != (code ******)0x0) {\n              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);\n            }\n            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {\n              pppppppcStack_460 = (code *******)0x1;\n              pppppppcVar38 = pppppppcStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar1 = pppppppcVar36 != (code *******)0x0;\n        if ((pppppppcStack_360 == (code *******)0x0) ||\n           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,\n           pppppppcVar27[0x13] == (code ******)0x0)) {\nLAB_000283f0:\n          if ((int)pppppppcVar32[0xd] << 4 < 0) {\n            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||\n               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,\n               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {\n              pppppppcVar27 = pppppppcVar26;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n            }\n            else {\n              pppppppcVar26 = (code *******)0xffffffff;\n              pppppppcVar27 = (code *******)0x0;\n            }\n          }\n          else {\n            pppppppcVar26 = (code *******)0xffffffff;\n            pppppppcVar27 = (code *******)0x0;\n          }\n          pppppcVar30 = ppppppcVar4[0x594e];\n          pppppcVar11 = ppppppcVar4[0x594e];\n          pppppcVar12 = ppppppcVar4[0x594e];\n          pppppppcStack_454 = pppppppcVar36;\n          while( true ) {\n            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);\n            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);\n            pppppppcVar43 = pppppppcStack_39c;\n            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;\n            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&\n               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;\n            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {\n              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {\nLAB_00028534:\n                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);\n                pppppppcStack_3e8 =\n                     (code *******)\n                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);\n                if (pppppppcStack_3e8 == (code *******)0x0) break;\n                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n                pppppppcVar38 = (code *******)0x468;\n                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n                uVar49 = (*(code *)ppppppcVar4[0x595c])\n                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,\n                                    ppppppcVar4[0x5916] + -0xcf0);\n                pppppppcVar27 = pppppppcVar44;\n              }\n            }\n            pppppppcVar29 = pppppppcStack_370;\n            if ((int)pppppppcVar32[0xd] << 5 < 0) {\n              if (0 < (int)pppppppcVar32[2]) {\n                pppppcVar35 = ppppppcVar4[0x594e];\n                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;\n                iVar17 = 0;\n                do {\n                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];\n                  ppppppcVar18 = *pppppppcVar29;\n                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];\n                  if (((uint)pppppcVar15 & 0x800) != 0) {\n                    if (((uint)pppppcVar15 & 0xffc000) != 0) {\n                      pppppppcVar43 = pppppppcStack_39c;\n                      uVar16 = (*(code *)pppppcVar13)\n                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);\n                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;\n                      if ((uVar10 & 4) == 0) {\n                        uVar23 = uVar16 & 1;\n                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar23 = uVar10 & 8;\n                        if ((uVar16 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar23 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||\n                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;\n                    pppppppcVar43 = pppppppcVar37;\n                    iVar14 = (*(code *)(pppppcVar12 + -0x218))\n                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)\n                    ;\n                    if (iVar14 != 0) {\n                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);\n                      if (iVar14 <= iStack_34c) {\n                        iVar14 = iStack_34c;\n                      }\n                      pppppppcVar43 = pppppppcVar33;\n                      iStack_34c = iVar14;\n                      pppppppcStack_3e4 =\n                           (code *******)\n                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);\n                      pppppppcVar3 = pppppppcStack_3e4;\n                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                      pppppppcVar38 =\n                           (code *******)\n                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);\n                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                      ppppppcVar18 = *pppppppcVar37;\n                      if (ppppppcVar18 == (code ******)0x0) {\n                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;\n                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];\n                        ppppppcStack_3d8 = pppppppcVar38[2];\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                      }\n                      else {\n                        pppppppcVar43 = (code *******)ppppppcVar18[10];\n                        pppppppcStack_3e4 =\n                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);\n                        pppppppcVar3 = pppppppcStack_3e4;\n                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);\n                      }\n                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&\n                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))\n                      goto LAB_000294e4;\n                    }\n                  }\nLAB_00028744:\n                  iVar17 = iVar17 + 1;\n                } while (iVar17 < (int)pppppppcVar32[2]);\n              }\n              pppppppcStack_3e8 = (code *******)0x0;\n            }\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);\n            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n            do {\n              if (pppppppcVar32[0xb] != (code ******)0x0) {\n                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];\nLAB_00028a40:\n                pppppppcVar29 = pppppppcVar38;\n                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;\n                goto LAB_00028a6c;\n              }\n              ppppppcVar18 = pppppppcVar32[0xc];\n              if (ppppppcVar18 != (code ******)0x0) {\n                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n                if ((uVar16 & 1) == 0) {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];\n                }\n                else {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];\n                }\n                goto LAB_00028a40;\n              }\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar38 = pppppppcStack_36c;\n              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);\n            } while (iVar17 != 0);\n            pppppppcStack_3e8 = (code *******)0xc;\n            pppppppcVar3 = pppppppcStack_3e8;\nLAB_000294e4:\n            pppppppcStack_3e8 = pppppppcVar3;\n            if (pppppppcStack_360 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              break;\n            }\n            pppppppcVar38 = (code *******)0x0;\nLAB_00028a4c:\n            pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n            pppppppcVar29 = (code *******)FUN_00024f5c(&pppppppcStack_3e8,pppppppcVar43);\nLAB_00028a6c:\n            if (pppppppcVar29 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              if ((pppppppcStack_360 == (code *******)0x0) ||\n                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;\n              pppppcVar35 = ppppppcVar4[0x594e];\n              do {\n                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;\n                pppppppcVar29 = pppppppcStack_39c;\n                do {\n                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  pppppppcVar43 = pppppppcStack_35c;\n                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;\n                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (*pppppppcVar37 == (code ******)0x0);\n                pppppppcVar38 = (code *******)0x0;\n                pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n                pppppppcVar29 =\n                     (code *******)\n                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);\n                if (pppppppcStack_3e8 != (code *******)0x0) {\n                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;\n                  break;\n                }\n                pppppppcVar43 = pppppppcStack_35c;\n              } while (pppppppcVar29 == (code *******)0x0);\n            }\n            pppppppcVar37 = pppppppcStack_448;\n            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {\n              bVar1 = false;\n              pppppppcVar37 = pppppppcStack_448;\n            }\n            pppppppcStack_448 = pppppppcVar37;\n            pppppppcVar32 = pppppppcVar29;\n            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&\n               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||\n                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,\n                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {\n              pppppppcVar27 = pppppppcStack_39c;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n              pppppppcStack_454 = (code *******)0x0;\n              pppppppcVar26 = pppppppcStack_39c;\n            }\n          }\nLAB_00029448:\n          pppppppcVar27 = pppppppcVar26;\n          if (pppppppcStack_454 != (code *******)0x0) {\n            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);\n          }\n        }\n        else {\n          pppppppcVar34 = pppppppcVar32 + 1;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar43 = pppppppcVar34;\n          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);\n          pppppppcVar27 = pppppppcStack_3e8;\n          if (pppppppcStack_3e8 == (code *******)0x0) {\n            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {\n              pppppppcVar43 = pppppppcVar34;\n              bVar1 = false;\n            }\n            else {\n              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);\n              pppppppcVar43 = pppppppcVar34;\n              pppppppcVar27 = pppppppcStack_3e8;\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;\n              bVar1 = false;\n            }\n            goto LAB_000283f0;\n          }\n        }\nLAB_0002945c:\n        if (pppppppcVar27 == (code *******)0xffffffff) {\nLAB_000291a4:\n          FUN_0001e14c(&pppppppcStack_3c4);\nLAB_000291bc:\n          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);\n          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;\n          pppppppcStack_460 = (code *******)0x1;\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {\n          pppppppcStack_460 = (code *******)0xc;\n          goto LAB_00028e84;\n        }\n        pppppppcStack_368 = pppppppcVar27;\n        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {\n          if (pppppppcVar6 < (code *******)0x2) {\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          else {\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          if (pppppppcVar6 < (code *******)0x2) {\nLAB_0002930c:\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;\n          }\n          else {\n            cVar20 = *(code *)(pppppppcVar44 + 0x16);\nLAB_000292c0:\n            if (-1 < (char)cVar20) goto LAB_0002930c;\n          }\n          ppppppcVar18 = ppppppcStack_364;\n          pppppppcVar26 = pppppppcStack_370;\n          if (pppppppcVar27 < (code *******)0x3fffffff) {\n            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;\n            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n            if (pppppppcVar32 == (code *******)0x0) {\nLAB_0002923c:\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              pppppppcStack_460 = (code *******)0xc;\n            }\n            else {\n              pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n              if (pppppppcVar26[0x13] == (code ******)0x0) {\n                pppppppcStack_3dc = (code *******)0x0;\n                ppppppcStack_3d8 = ppppppcVar18;\n                uStack_3d0 = 0;\n                uStack_3cc = 0;\n                uStack_3c8 = 0;\n                pppppppcStack_3e0 = pppppppcVar32;\n                pppppppcStack_3d4 = pppppppcVar27;\n                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);\n                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                if (pppppppcStack_460 == (code *******)0x0) {\n                  if (*pppppppcVar32 == (code ******)0x0) {\n                    pppppppcVar34 = (code *******)0x0;\nLAB_00029210:\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    goto LAB_000291a4;\n                  }\nLAB_00028bc8:\n                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n                  pppppppcStack_368 = pppppppcVar27;\n                  ppppppcStack_364 = ppppppcVar18;\n                  pppppppcStack_360 = pppppppcVar32;\n                  goto LAB_00028be8;\n                }\nLAB_0002916c:\n                pppppppcVar34 = (code *******)0x0;\n              }\n              else {\n                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;\n                pppppcVar30 = ppppppcVar4[0x594e];\n                pppppcVar11 = ppppppcVar4[0x594e];\n                while( true ) {\n                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);\n                  pppppppcVar38 = pppppppcVar29;\n                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);\n                  uStack_3d0 = 0;\n                  uStack_3cc = 0;\n                  uStack_3c8 = 0;\n                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n                  pppppppcStack_3e0 = pppppppcVar32;\n                  pppppppcStack_3dc = pppppppcVar34;\n                  ppppppcStack_3d8 = ppppppcVar18;\n                  pppppppcStack_3d4 = pppppppcVar27;\n                  pppppppcStack_460 =\n                       (code *******)\n                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);\n                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                  if (pppppppcStack_460 != (code *******)0x0) break;\n                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))\n                  {\n                    pppppppcVar43 = pppppppcVar32;\n                    pppppppcVar38 = pppppppcVar34;\n                    pppppppcStack_460 =\n                         (code *******)\n                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,\n                                      (code *)((int)pppppppcVar27 + 1));\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;\n                    goto LAB_00028bc8;\n                  }\n                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));\n                  do {\n                    while( true ) {\n                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);\n                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;\n                      pppppppcVar43 = *(code ********)(pcVar46 + -4);\n                      if (pppppppcVar43 != (code *******)0x0) break;\n                      pcVar46 = pcVar46 + -4;\n                    }\n                    pcVar46 = pcVar46 + -4;\n                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);\n                  ppppppcVar18 = (code ******)\n                                 (*(code *)(pppppcVar11 + -0x108d))\n                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);\n                }\n              }\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;\n            }\n          }\n          else {\n            pppppppcStack_460 = (code *******)0xc;\n          }\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar44[0x13] != (code ******)0x0) {\n          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n          pppppppcVar38 = pppppppcVar27;\n          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          goto LAB_0002930c;\n        }\nLAB_000292a8:\n        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {\n          cVar20 = *(code *)(pppppppcVar44 + 0x16);\n          goto LAB_000292c0;\n        }\nLAB_00028be8:\n        pppppppcStack_460 = pppppppcVar42;\n        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;\n        if (pppppppcVar6 < (code *******)0x2) {\n          *pppppppcVar2 = (code ******)0x0;\n          pppppppcVar2[1] = (code ******)pppppppcStack_368;\n          goto LAB_00028c4c;\n        }\n        pppppppcVar26 = pppppppcVar2 + 2;\n        do {\n          pppppppcVar26[1] = (code ******)0xffffffff;\n          *pppppppcVar26 = (code ******)0xffffffff;\n          pppppppcVar26 = pppppppcVar26 + 2;\n        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n        *pppppppcVar2 = (code ******)0x0;\n        pppppppcVar2[1] = (code ******)pppppppcStack_368;\n        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {\nLAB_00028c4c:\n          pppppppcVar26 = pppppppcVar2;\n          do {\n            pppppppcVar43 = (code *******)*pppppppcVar26;\n            if (pppppppcVar43 != (code *******)0xffffffff) {\n              if (cStack_378 != '\0') {\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcVar43 != pppppppcStack_3a8) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);\n                }\n                *pppppppcVar26 = (code ******)pppppppcVar36;\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);\n                }\n                pppppppcVar26[1] = (code ******)pppppppcVar36;\n              }\n              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);\n              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);\n              pppppppcVar26[1] = (code ******)pppppppcVar43;\n            }\n            pppppppcVar26 = pppppppcVar26 + 2;\n          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n          if (0 < (int)pcStack_428) {\n            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;\n            do {\n              *pppppppcVar26 = (code ******)0xffffffff;\n              pppppppcVar26[1] = (code ******)0xffffffff;\n              pppppppcVar26 = pppppppcVar26 + 2;\n            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);\n          }\n          pppppppcVar38 = pppppppcStack_3ec;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar44[0x21] != (code ******)0x0) {\n            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);\n            pppppppcVar6 = (code *******)0x0;\n            pppppppcVar26 = pppppppcVar2;\n            while( true ) {\n              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);\n              if (pppppppcVar38 == pppppppcVar6) break;\n              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {\n                pppppppcVar26[2] =\n                     pppppppcVar2\n                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1\n                           ) * 2];\n                pppppppcVar26[3] =\n                     pppppppcVar2\n                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +\n                      1];\n              }\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n              pppppppcVar26 = pppppppcVar26 + 2;\n            }\n          }\n          goto LAB_00028e84;\n        }\n        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {\n          bVar19 = 0 < (int)pppppppcVar44[0x13];\n        }\n        else {\n          bVar19 = false;\n        }\n        pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n        pppppppcVar38 = pppppppcVar6;\n        pppppppcStack_460 =\n             (code *******)\n             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);\n        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;\n      }\n    }\n    else if (uStack_3a0 < 0x3fffffff) {\n      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);\n      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;\n      pppppppcStack_460 = (code *******)0xc;\n    }\n    else {\n      pppppppcStack_460 = (code *******)0xc;\n    }\n  }\n  else {\n    if (uVar21 < 0xccccccd) {\n      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);\n      iStack_350 = iVar40;\n      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);\n      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;\n    }\n    pppppppcStack_460 = (code *******)0xc;\n  }\nLAB_00028e84:\n  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n  pppppppcVar22 = pppppppcVar38;\n  if (pppppppcVar44[0x13] != (code ******)0x0) {\n    FUN_0001e14c(&pppppppcStack_3c4);\n    (*(code *)ppppppcVar4[0x599c])(iStack_340);\n    (*(code *)ppppppcVar4[0x599c])(iStack_350);\n    pppppppcVar22 = pppppppcVar38;\n  }\n  FUN_0001dc20(&pppppppcStack_3c4);\nLAB_00028eb4:\n  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {\n    return pppppppcStack_460;\n  }\n  pppppcVar5 = ppppppcVar4[0x5991];\n  ppppcVar24 = ppppcStack_33c;\n  (*(code *)pppppcVar5)();\n  *(byte *)(pppppppcVar22 + 7) =\n       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |\n       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;\n  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);\n  if (iVar40 == 0) {\n    pppppppcVar26 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar26 =\n         (code *******)\n         (*(code *)pppppcVar5[0x537d])\n                   (0,(code *)((int)pppppcVar5[0x5301] +\n                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);\n  }\n  return pppppppcVar26;\ncode_r0x000291d8:\n  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;\n  goto LAB_000291e4;\nLAB_00028e48:\n  pppppppcStack_460 = (code *******)0x1;\n  goto LAB_00028e84;\nLAB_00028fb4:\n  pppppppcStack_460 = (code *******)0xc;\n  goto LAB_00028e84;\n}" type_identifier (pointer_declarator "******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "****** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "***** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "**** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "*** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (function_declarator "FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" identifier (parameter_list "(int *param_1,code *******param_2,code *******param_3,code *******param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *******param_2" type_identifier (pointer_declarator "*******param_2" * (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))))))) , (parameter_declaration "code *******param_3" type_identifier (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "code *******param_4" type_identifier (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) )))))))))) (compound_statement "{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppc
[cell cut: 3,177,821 characters, first 262,144 kept]
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nre_dfastate_t *\nmerge_state_with_log(reg_errcode_t *err,re_match_context_t *mctx,re_dfastate_t *next_state)\n\n{\n  byte bVar1;\n  bool bVar2;\n  anon_union_4_5_a39f51ca_for_opr aVar3;\n  anon_union_4_5_a39f51ca_for_opr aVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  undefined3 extraout_var_02;\n  undefined3 extraout_var_03;\n  undefined3 extraout_var_04;\n  anon_union_4_5_a39f51ca_for_opr aVar5;\n  int iVar6;\n  re_dfastate_t *prVar7;\n  re_backref_cache_entry *prVar8;\n  wint_t *pwVar9;\n  anon_union_4_5_a39f51ca_for_opr aVar10;\n  _Bool _Var38;\n  uint uVar11;\n  bitset_word_t bVar12;\n  re_state_table_entry *prVar13;\n  byte *pbVar14;\n  re_bitset_ptr_t pbVar15;\n  re_sub_match_top_t **pprVar16;\n  re_sub_match_top_t *prVar17;\n  re_sub_match_top_t *prVar18;\n  undefined1 *puVar19;\n  re_token_t *prVar20;\n  int *piVar21;\n  re_context_type rVar22;\n  re_node_set *prVar23;\n  re_dfastate_t **pprVar24;\n  int iVar25;\n  int iVar26;\n  re_dfa_t *prVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  uint uVar32;\n  Idx **ppIVar33;\n  Idx IVar34;\n  bool bVar39;\n  re_dfa_t *prVar35;\n  int iVar36;\n  char cVar40;\n  reg_errcode_t rVar37;\n  re_context_type *prVar41;\n  anon_union_4_5_a39f51ca_for_opr *paVar42;\n  re_context_type rVar43;\n  anon_union_4_5_a39f51ca_for_opr preg;\n  uint uVar44;\n  char *pattern;\n  anon_union_4_5_a39f51ca_for_opr aVar45;\n  anon_union_4_5_a39f51ca_for_opr aVar46;\n  uint *puVar47;\n  anon_union_4_5_a39f51ca_for_opr *paVar48;\n  re_node_set **pprVar49;\n  anon_union_4_5_a39f51ca_for_opr aVar50;\n  anon_union_4_5_a39f51ca_for_opr in_a3;\n  anon_union_4_5_a39f51ca_for_opr aVar51;\n  anon_union_4_5_a39f51ca_for_opr aVar52;\n  int iVar53;\n  reg_syntax_t syntax;\n  Idx *pIVar54;\n  anon_union_4_5_a39f51ca_for_opr aVar55;\n  wchar_t *pwVar56;\n  anon_union_4_5_a39f51ca_for_opr aVar57;\n  re_dfastate_t ***set;\n  int iVar58;\n  anon_union_4_5_a39f51ca_for_opr aVar59;\n  anon_union_4_5_a39f51ca_for_opr aVar60;\n  uint uVar61;\n  anon_union_4_5_a39f51ca_for_opr unaff_s4;\n  uchar *puVar62;\n  re_dfastate_t **unaff_s6;\n  anon_union_4_5_a39f51ca_for_opr aVar63;\n  anon_union_4_5_a39f51ca_for_opr aVar64;\n  anon_union_4_5_a39f51ca_for_opr aVar65;\n  re_dfastate_t *prVar66;\n  undefined *puVar67;\n  code *pcVar68;\n  bin_tree_storage_t *pbVar69;\n  anon_union_4_5_a39f51ca_for_opr unaff_s8;\n  code *pcVar70;\n  undefined8 uVar71;\n  re_dfastate_t *prStack_460;\n  int iStack_458;\n  anon_union_4_5_a39f51ca_for_opr *paStack_454;\n  anon_union_4_5_a39f51ca_for_opr aStack_448;\n  int iStack_428;\n  anon_union_4_5_a39f51ca_for_opr aStack_3ec;\n  anon_union_4_5_a39f51ca_for_opr aStack_3e8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3e4;\n  anon_union_4_5_a39f51ca_for_opr aStack_3e0;\n  anon_union_4_5_a39f51ca_for_opr aStack_3dc;\n  anon_union_4_5_a39f51ca_for_opr aStack_3d8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3c4;\n  anon_union_4_5_a39f51ca_for_opr aStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  anon_union_4_5_a39f51ca_for_opr aStack_3a8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3a4;\n  uint uStack_3a0;\n  anon_union_4_5_a39f51ca_for_opr aStack_39c;\n  anon_union_4_5_a39f51ca_for_opr aStack_398;\n  anon_union_4_5_a39f51ca_for_opr aStack_394;\n  anon_union_4_5_a39f51ca_for_opr aStack_390;\n  anon_union_4_5_a39f51ca_for_opr aStack_38c;\n  undefined4 uStack_388;\n  uint uStack_384;\n  int iStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  anon_union_4_5_a39f51ca_for_opr aStack_374;\n  anon_union_4_5_a39f51ca_for_opr aStack_370;\n  anon_union_4_5_a39f51ca_for_opr aStack_36c;\n  anon_union_4_5_a39f51ca_for_opr aStack_368;\n  anon_union_4_5_a39f51ca_for_opr aStack_364;\n  anon_union_4_5_a39f51ca_for_opr aStack_360;\n  anon_union_4_5_a39f51ca_for_opr aStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  char *pcStack_33c;\n  anon_union_4_5_a39f51ca_for_opr aStack_338;\n  anon_union_4_5_a39f51ca_for_opr aStack_334;\n  anon_union_4_5_a39f51ca_for_opr aStack_330;\n  anon_union_4_5_a39f51ca_for_opr *paStack_32c;\n  anon_union_4_5_a39f51ca_for_opr aStack_328;\n  anon_union_4_5_a39f51ca_for_opr aStack_324;\n  anon_union_4_5_a39f51ca_for_opr aStack_320;\n  anon_union_4_5_a39f51ca_for_opr aStack_31c;\n  anon_union_4_5_a39f51ca_for_opr aStack_318;\n  code *pcStack_314;\n  anon_union_4_5_a39f51ca_for_opr aStack_308;\n  anon_union_4_5_a39f51ca_for_opr aStack_300;\n  anon_union_4_5_a39f51ca_for_opr aStack_2fc;\n  anon_union_4_5_a39f51ca_for_opr aStack_2f8;\n  anon_union_4_5_a39f51ca_for_opr aStack_2f4;\n  anon_union_4_5_a39f51ca_for_opr aStack_2f0;\n  anon_union_4_5_a39f51ca_for_opr aStack_2ec;\n  re_dfastate_t **pprStack_2e8;\n  anon_union_4_5_a39f51ca_for_opr aStack_2e4;\n  re_dfastate_t ***ppprStack_2e0;\n  re_dfastate_t **pprStack_2dc;\n  re_dfastate_t **pprStack_2d8;\n  int iStack_2d4;\n  anon_union_4_5_a39f51ca_for_opr aStack_2cc;\n  re_node_set rStack_2c8;\n  anon_union_4_5_a39f51ca_for_opr aaStack_2bc [8];\n  anon_union_4_5_a39f51ca_for_opr aStack_29c;\n  wchar_t *pwStack_298;\n  Idx *pIStack_294;\n  Idx IStack_290;\n  Idx *pIStack_28c;\n  re_node_set *prStack_288;\n  re_node_set *prStack_284;\n  re_node_set *prStack_280;\n  anon_union_4_5_a39f51ca_for_opr aaStack_27c [4];\n  anon_union_4_5_a39f51ca_for_opr aStack_26c;\n  anon_union_4_5_a39f51ca_for_opr aStack_268;\n  anon_union_4_5_a39f51ca_for_opr aStack_264;\n  anon_union_4_5_a39f51ca_for_opr aStack_260;\n  anon_union_4_5_a39f51ca_for_opr aStack_25c;\n  anon_union_4_5_a39f51ca_for_opr aStack_258;\n  anon_union_4_5_a39f51ca_for_opr aStack_254;\n  anon_union_4_5_a39f51ca_for_opr aStack_250;\n  anon_union_4_5_a39f51ca_for_opr aStack_24c;\n  anon_union_4_5_a39f51ca_for_opr aStack_248;\n  anon_union_4_5_a39f51ca_for_opr aStack_244;\n  anon_union_4_5_a39f51ca_for_opr aStack_240;\n  anon_union_4_5_a39f51ca_for_opr aStack_23c;\n  anon_union_4_5_a39f51ca_for_opr aStack_238;\n  code *pcStack_234;\n  anon_union_4_5_a39f51ca_for_opr aStack_210;\n  anon_union_4_5_a39f51ca_for_opr aStack_204;\n  anon_union_4_5_a39f51ca_for_opr aStack_200;\n  re_node_set rStack_1fc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1f0;\n  anon_union_4_5_a39f51ca_for_opr aaStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c0;\n  anon_union_4_5_a39f51ca_for_opr aStack_1bc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1b8;\n  anon_union_4_5_a39f51ca_for_opr aStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  int iStack_1a0;\n  anon_union_4_5_a39f51ca_for_opr aStack_19c;\n  anon_union_4_5_a39f51ca_for_opr aStack_198;\n  anon_union_4_5_a39f51ca_for_opr aStack_194;\n  anon_union_4_5_a39f51ca_for_opr aStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_18c;\n  anon_union_4_5_a39f51ca_for_opr aStack_188;\n  anon_union_4_5_a39f51ca_for_opr aStack_184;\n  anon_union_4_5_a39f51ca_for_opr aStack_180;\n  re_dfastate_t *prStack_17c;\n  anon_union_4_5_a39f51ca_for_opr aStack_178;\n  code *pcStack_174;\n  anon_union_4_5_a39f51ca_for_opr aStack_160;\n  anon_union_4_5_a39f51ca_for_opr aStack_15c;\n  code *pcStack_158;\n  anon_union_4_5_a39f51ca_for_opr aStack_150;\n  int iStack_14c;\n  wctype_t *pwStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  anon_union_4_5_a39f51ca_for_opr aStack_13c;\n  code *pcStack_138;\n  re_dfa_t *prStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  re_node_set rStack_128;\n  anon_union_4_5_a39f51ca_for_opr aStack_11c;\n  anon_union_4_5_a39f51ca_for_opr aStack_118;\n  anon_union_4_5_a39f51ca_for_opr aStack_114;\n  anon_union_4_5_a39f51ca_for_opr aStack_110;\n  re_node_set *prStack_10c;\n  anon_union_4_5_a39f51ca_for_opr aStack_108;\n  anon_union_4_5_a39f51ca_for_opr aStack_104;\n  anon_union_4_5_a39f51ca_for_opr aStack_100;\n  re_dfastate_t *prStack_fc;\n  anon_union_4_5_a39f51ca_for_opr aStack_f8;\n  code *pcStack_f4;\n  anon_union_4_5_a39f51ca_for_opr aStack_e0;\n  byte *pbStack_dc;\n  undefined *puStack_d8;\n  anon_union_4_5_a39f51ca_for_opr aStack_cc;\n  anon_union_4_5_a39f51ca_for_opr aStack_c8;\n  anon_union_4_5_a39f51ca_for_opr aStack_c4;\n  code *pcStack_c0;\n  re_backref_cache_entry *prStack_bc;\n  code *pcStack_b8;\n  anon_union_4_5_a39f51ca_for_opr aStack_b4;\n  anon_union_4_5_a39f51ca_for_opr aStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  re_dfa_t *prStack_a0;\n  int iStack_9c;\n  anon_union_4_5_a39f51ca_for_opr aStack_94;\n  anon_union_4_5_a39f51ca_for_opr aStack_90;\n  anon_union_4_5_a39f51ca_for_opr aStack_8c;\n  anon_union_4_5_a39f51ca_for_opr aStack_88;\n  anon_union_4_5_a39f51ca_for_opr aStack_84;\n  anon_union_4_5_a39f51ca_for_opr aStack_80;\n  anon_union_4_2_91654ee9_for___value aStack_7c;\n  re_node_set *prStack_78;\n  anon_union_4_5_a39f51ca_for_opr aStack_74;\n  re_match_context_t *prStack_70;\n  re_dfastate_t *prStack_6c;\n  anon_union_4_5_a39f51ca_for_opr aStack_68;\n  anon_union_4_5_a39f51ca_for_opr aStack_64;\n  anon_union_4_5_a39f51ca_for_opr aStack_60;\n  reg_errcode_t *prStack_5c;\n  re_dfastate_t **pprStack_58;\n  re_node_set next_nodes;\n  \n  aVar5 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_0003e314;\n  aVar59 = (anon_union_4_5_a39f51ca_for_opr)(mctx->input).cur_idx;\n  aVar60 = (anon_union_4_5_a39f51ca_for_opr)mctx->dfa;\n  aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx;\n  prVar7 = next_state;\n  if (mctx->state_log_top < (int)aVar59) {\n    mctx->state_log[aVar59.idx] = next_state;\n    mctx->state_log_top = (Idx)aVar59;\nLAB_00024fd0:\n    iVar6 = *(Idx *)(aVar60.idx + 0x4c);\nLAB_00024fd4:\n    aVar64 = (anon_union_4_5_a39f51ca_for_opr)next_state;\n    if ((iVar6 != 0) &&\n       (aVar60.sbcset = (re_bitset_ptr_t)&prVar7->nodes, prVar7 != (re_dfastate_t *)0x0)) {\n      aVar46 = aVar60;\n      aVar64 = aVar59;\n      rVar37 = check_subexp_matching_top(mctx,(re_node_set *)aVar60.mbcset,aVar59.idx);\n      *err = rVar37;\n      if (rVar37 == _REG_NOERROR) {\n        if ((prVar7->field_0x34 & 2) != 0) {\n          aVar46 = aVar60;\n          rVar37 = transit_state_bkref(mctx,(re_node_set *)aVar60.mbcset);\n          *err = rVar37;\n          if (rVar37 == _REG_NOERROR) {\n            prVar7 = mctx->state_log[aVar59.idx];\n          }\n          else {\n            prVar7 = (re_dfastate_t *)0x0;\n          }\n        }\n      }\n      else {\n        prVar7 = (re_dfastate_t *)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4.sbcset = (re_bitset_ptr_t)(mctx->state_log + aVar59.idx);\n    if (*unaff_s4.sbcset == 0) {\n      ((re_string_t *)&(unaff_s4.mbcset)->mbchars)->raw_mbs = (uchar *)next_state;\n      goto LAB_00024fd0;\n    }\n    aVar64 = (anon_union_4_5_a39f51ca_for_opr)\n             ((anon_union_4_5_a39f51ca_for_opr *)(*unaff_s4.sbcset + 0x28))->mbcset;\n    if (next_state == (re_dfastate_t *)0x0) {\n      next_nodes.alloc = *aVar64.sbcset;\n      next_nodes.nelem = ((re_node_set *)&(aVar64.mbcset)->range_starts)->alloc;\n      next_nodes.elems = (aVar64.mbcset)->range_ends;\n      in_a3.ctx_type = re_string_context_at(&mctx->input,(Idx)(aVar59.idx + -1),mctx->eflags);\n      next_state = (re_dfastate_t *)&next_nodes;\n      aVar46 = aVar60;\n      prVar7 = re_acquire_state_context\n                         (err,(re_dfa_t *)aVar60.mbcset,(re_node_set *)next_state,in_a3.ctx_type);\n      ((re_string_t *)&(unaff_s4.mbcset)->mbchars)->raw_mbs = (uchar *)prVar7;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (anon_union_4_5_a39f51ca_for_opr)next_state->entrance_nodes;\n    aVar46 = unaff_s4;\n    rVar37 = re_node_set_init_union\n                       (&next_nodes,(re_node_set *)unaff_s4.mbcset,(re_node_set *)aVar64.mbcset);\n    *err = rVar37;\n    if (rVar37 == _REG_NOERROR) {\n      in_a3.ctx_type = re_string_context_at(&mctx->input,(mctx->input).cur_idx + -1,mctx->eflags);\n      unaff_s6 = mctx->state_log + aVar59.idx;\n      next_state = (re_dfastate_t *)&next_nodes;\n      aVar46 = aVar60;\n      prVar7 = re_acquire_state_context\n                         (err,(re_dfa_t *)aVar60.mbcset,(re_node_set *)next_state,in_a3.ctx_type);\n      *unaff_s6 = prVar7;\n      if ((re_dfa_t *)unaff_s4.sbcset == (re_dfa_t *)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(next_nodes.elems);\n      iVar6 = *(Idx *)(aVar60.idx + 0x4c);\n      goto LAB_00024fd4;\n    }\n    prVar7 = (re_dfastate_t *)0x0;\n  }\n  if ((re_dfa_t *)aVar5.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_0003e314) {\n    return prVar7;\n  }\n  puVar67 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar67 + 0x20ee4;\n  aStack_74 = (anon_union_4_5_a39f51ca_for_opr)\n              (*(anon_union_4_5_a39f51ca_for_opr **)(puVar67 + 0x19128))->mbcset;\n  aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n           ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.idx + 0x54))->mbcset;\n  aStack_94.sbcset = (re_bitset_ptr_t)0x0;\n  prVar66 = (re_dfastate_t *)(aVar64.idx * 4);\n  aVar45 = aVar63;\n  aVar50 = in_a3;\n  aVar51 = in_a3;\n  prStack_70 = mctx;\n  prStack_6c = prVar7;\n  aStack_68 = aVar59;\n  aStack_64 = aVar60;\n  aStack_60 = unaff_s4;\n  prStack_5c = err;\n  pprStack_58 = unaff_s6;\n  if ((*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx] == (re_dfastate_t *)0x0) {\n    prVar23 = (re_node_set *)0x0;\n    if (((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc != 0) {\n      prVar66 = (re_dfastate_t *)\n                (((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4);\n      prVar7 = re_acquire_state(&aStack_94.idx,(re_dfa_t *)aVar63.mbcset,(re_node_set *)in_a3.mbcset\n                               );\n      prVar66->hash = (re_hashval_t)prVar7;\n      aVar59 = aStack_94;\n      puVar67 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    puVar62 = ((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4;\n    puVar62[0] = '\0';\n    puVar62[1] = '\0';\n    puVar62[2] = '\0';\n    puVar62[3] = '\0';\n    aVar45 = aVar46;\n    if (prVar23 == (re_node_set *)0x0) {\n      aVar59.sbcset = (re_bitset_ptr_t)0x0;\n      puVar67 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      aVar59.sbcset = (re_bitset_ptr_t)0x0;\n      puVar67 = puStack_d8;\n      if (((*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx]->field_0x34 & 2) != 0) {\n        aVar45 = aVar64;\n        prStack_a0 = (re_dfa_t *)\n                     search_cur_bkref_entry((re_match_context_t *)aVar5.mbcset,aVar64.idx);\n        aVar59.sbcset = (re_bitset_ptr_t)0x0;\n        puVar67 = puStack_d8;\n        if (prStack_a0 != (re_dfa_t *)0xffffffff) {\n          unaff_s8 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.idx + 0x54))->mbcset;\n          aStack_90.sbcset = (re_bitset_ptr_t)0x0;\n          if (prVar23->nelem < 1) {\n            aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          }\n          else {\n            iStack_9c = (int)prStack_a0 * 0x14;\n            aStack_c4.sbcset = (re_bitset_ptr_t)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            aStack_b4.sbcset = (re_bitset_ptr_t)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                       ((anon_union_4_5_a39f51ca_for_opr *)(prVar23->elems + aStack_c4.idx))->\n                       ctx_type;\n              if ((((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)(aVar46.mbcset)->range_ends) ||\n                  ((re_dfa_t *)aVar64.sbcset != (re_dfa_t *)(aVar46.mbcset)->char_classes)) &&\n                 (*(char *)((unaff_s8.mbcset)->mbchars + aVar63.idx * 2 + 1) == '\x04')) {\n                pcStack_b8 = (code *)(aVar63.idx * 0xc);\n                prStack_bc = (re_backref_cache_entry *)(aVar63.ctx_type << 2);\n                aStack_c8.idx = (Idx)prStack_a0;\n                uStack_ac = *(undefined4 *)(puVar67 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar67 + -0x7ee8);\n                aVar59.sbcset =\n                     (re_bitset_ptr_t)\n                     (iStack_9c + (int)&(*(re_backref_cache_entry **)(aVar5.idx + 0x74))->node);\n                do {\n                  in_a3 = aVar59;\n                  if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)*in_a3.sbcset) {\n                    iVar6 = (int)(in_a3.mbcset)->char_classes - (int)(in_a3.mbcset)->range_ends;\n                    pbVar14 = (byte *)((int)aVar64.sbcset + iVar6);\n                    if (iVar6 == 0) {\n                      aStack_cc = **(anon_union_4_5_a39f51ca_for_opr **)\n                                    (pcStack_b8 + (unaff_s8.mbcset)->nmbchars + 8);\n                    }\n                    else {\n                      aStack_cc = *(anon_union_4_5_a39f51ca_for_opr *)\n                                   ((int)&prStack_bc->node + (int)(unaff_s8.mbcset)->char_classes);\n                    }\n                    if ((((int)pbVar14 <= (int)(aVar46.mbcset)->char_classes) &&\n                        (iVar6 = *(int *)(((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs +\n                                         (int)pbVar14 * 4), aVar45 = aStack_cc, iVar6 != 0)) &&\n                       (iVar6 = (*pcStack_c0)(iVar6 + 4), puVar67 = puStack_d8, iVar6 != 0)) {\n                      aVar45.sbcset = (re_bitset_ptr_t)(aVar46.idx + 0x10);\n                      aStack_e0 = aStack_cc;\n                      aVar50 = aVar63;\n                      aVar51 = aVar64;\n                      pbStack_dc = pbVar14;\n                      aStack_b0.sbcset = aVar45.sbcset;\n                      iVar6 = (*(code *)aStack_b4)(aVar5.sbcset);\n                      puVar67 = puStack_d8;\n                      if (iVar6 == 0) {\n                        if ((re_dfa_t *)aStack_90.sbcset == (re_dfa_t *)0x0) {\n                          aStack_90.sbcset =\n                               (re_bitset_ptr_t)((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs;\n                          aVar51 = (anon_union_4_5_a39f51ca_for_opr)\n                                   ((re_node_set *)&(aVar46.mbcset)->range_starts)->alloc;\n                          aVar50 = (anon_union_4_5_a39f51ca_for_opr)(aVar46.mbcset)->range_ends;\n                          aStack_84 = (anon_union_4_5_a39f51ca_for_opr)(aVar46.mbcset)->char_classes\n                          ;\n                          aStack_80 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar46.idx + 0x10);\n                          aStack_7c = *(anon_union_4_2_91654ee9_for___value *)\n                                       &(aVar46.mbcset)->nmbchars;\n                          prStack_78 = (re_node_set *)(aVar46.mbcset)->ncoll_syms;\n                          aVar45 = aStack_b0;\n                          aStack_8c = aVar51;\n                          aStack_88 = aVar50;\n                          aVar59.sbcset =\n                               (re_bitset_ptr_t)\n                               re_node_set_init_copy((re_node_set *)&aStack_80,aStack_b0.sbcset);\n                          puVar67 = puStack_d8;\n                          if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_00025aa0;\n                        }\n                        aVar45 = aStack_c8;\n                        aStack_88 = aVar63;\n                        aStack_84 = aVar64;\n                        _Var38 = re_node_set_insert((re_node_set *)&aStack_80,aStack_c8.idx);\n                        if (CONCAT31(extraout_var,_Var38) == 0) {\n                          aVar59.idx = 0xc;\n                          puVar67 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        in_a3 = *(anon_union_4_5_a39f51ca_for_opr *)(aStack_90.sbcset + aVar64.idx);\n                        aVar45.sbcset = (re_bitset_ptr_t)&aStack_90;\n                        aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_a4)(aVar5.sbcset);\n                        puVar67 = puStack_d8;\n                        if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_00025aa0;\n                        aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_node_set *)&(aVar46.mbcset)->range_starts)->alloc;\n                        aVar51.sbcset = (re_bitset_ptr_t)(aVar64.idx + 1);\n                        if (((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) &&\n                           (aVar50 = aStack_90,\n                           aVar59.sbcset =\n                                (re_bitset_ptr_t)\n                                merge_state_array((re_dfa_t *)unaff_s8.mbcset,\n                                                  (re_dfastate_t **)aVar45.sbcset,aStack_90.sbcset,\n                                                  aVar51.idx), puVar67 = puStack_d8,\n                           (re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0)) goto LAB_00025aa0;\n                        aVar59 = aStack_c8;\n                        *(anon_union_4_5_a39f51ca_for_opr *)(aStack_90.sbcset + aVar64.idx) = in_a3;\n                        iVar6 = (*pcStack_c0)(&aStack_80,aStack_c8.sbcset);\n                        aVar45.sbcset = (re_bitset_ptr_t)(iVar6 + -1);\n                        re_node_set_remove_at((re_node_set *)&aStack_80,aVar45.idx);\n                        in_a3.sbcset = (re_bitset_ptr_t)\n                                       (*(re_backref_cache_entry **)(aVar5.idx + 0x74) + aVar59.idx)\n                        ;\n                        puVar67 = puStack_d8;\n                      }\n                    }\n                  }\n                  aStack_c8.sbcset = (re_bitset_ptr_t)(aStack_c8.idx + 1);\n                  aVar59 = (anon_union_4_5_a39f51ca_for_opr)&(in_a3.mbcset)->nmbchars;\n                } while (*(char *)&((re_node_set *)(in_a3.idx + 0x10))->alloc != '\0');\n              }\n              aStack_c4.sbcset =\n                   (re_bitset_ptr_t)\n                   ((int)&((re_string_t *)&(aStack_c4.mbcset)->mbchars)->raw_mbs + 1);\n              aVar59.sbcset = (re_bitset_ptr_t)0x0;\n            } while (aStack_c4.idx < prVar23->nelem);\nLAB_00025aa0:\n            if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {\n              (**(code **)(puVar67 + -0x7db0))(prStack_78);\n              puVar67 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    prVar23 = &(*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx]->nodes;\n    aVar50 = aVar64;\n    if (((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc == 0) goto LAB_000253c8;\n    aStack_90.sbcset = (re_bitset_ptr_t)0x0;\n    aVar50 = in_a3;\n    unaff_s8.sbcset = &re_acquire_state(&aStack_90.idx,(re_dfa_t *)aVar63.mbcset,in_a3.sbcset)->hash\n    ;\n    aVar59 = aStack_90;\n    puVar67 = puStack_d8;\n    if ((re_dfa_t *)aStack_90.sbcset == (re_dfa_t *)0x0) {\n      aVar50.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;\n      if (((re_node_set *)&(unaff_s8.mbcset)->nequiv_classes)->alloc == 0) {\n        aStack_cc.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;\n        aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                 ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc;\n        aStack_90.idx = re_node_set_alloc((re_node_set *)aStack_cc.mbcset,aVar45.idx);\n        if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {\n          aVar59.idx = 0xc;\n          puVar67 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc) {\n          aStack_c8.sbcset = (re_bitset_ptr_t)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar6 = 0;\n          do {\n            aStack_90.sbcset = (re_bitset_ptr_t)0x0;\n            aVar45.sbcset =\n                 (re_bitset_ptr_t)\n                 ((re_node_set *)(aVar63.mbcset)->nequiv_classes + (in_a3.mbcset)->range_ends[iVar6]\n                 );\n            aStack_90.sbcset = (re_bitset_ptr_t)(*aStack_c8.sbcset)(aStack_cc.sbcset);\n            if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {\n              aVar59.idx = 0xc;\n              puVar67 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc);\n        }\n      }\n      aVar50.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;\n      aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar23;\n      aVar59.sbcset =\n           (re_bitset_ptr_t)\n           re_node_set_add_intersect(in_a3.sbcset,prVar23,(re_node_set *)aVar50.mbcset);\n      puVar67 = puStack_d8;\n      aStack_b4.idx = aVar59.idx;\n      aStack_94.idx = aVar59.idx;\n      if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n      if (((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch != 0) {\n        prStack_bc = *(re_backref_cache_entry **)(aVar5.idx + 0x74);\n        if (0 < (int)((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          aStack_cc.sbcset = (re_bitset_ptr_t)0x0;\n          do {\n            prVar8 = prStack_bc +\n                     (&((re_node_set *)(aVar46.mbcset)->ncoll_syms)->alloc)[aStack_cc.idx];\n            if ((prVar8->subexp_from < aVar64.idx) && (aVar64.idx <= prVar8->str_idx)) {\n              aVar51.sbcset = (re_bitset_ptr_t)(aVar63.mbcset)->mbchars;\n              aStack_c8 = (anon_union_4_5_a39f51ca_for_opr)\n                          ((anon_union_4_5_a39f51ca_for_opr *)(aVar51.sbcset + prVar8->node * 2))->\n                          sbcset;\n              if ((re_dfa_t *)aVar64.sbcset == (re_dfa_t *)prVar8->subexp_to) {\n                iVar6 = ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc;\n                if (0 < iVar6) {\n                  paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(in_a3.mbcset)->range_ends;\n                  paVar48 = paVar42 + iVar6;\n                  aStack_c4.idx = -1;\n                  aVar45.idx = -1;\n                  do {\n                    aVar59 = (anon_union_4_5_a39f51ca_for_opr)paVar42->mbcset;\n                    ppIVar33 = (Idx **)(aVar51.sbcset + aVar59.idx * 2);\n                    if (*(byte *)(ppIVar33 + 1) == 8) {\n                      if ((re_dfa_t *)aStack_c8.sbcset == (re_dfa_t *)*ppIVar33) {\n                        aVar45 = aVar59;\n                      }\n                    }\n                    else if ((*(byte *)(ppIVar33 + 1) == 9) &&\n                            ((re_dfa_t *)aStack_c8.sbcset == (re_dfa_t *)*ppIVar33)) {\n                      aStack_c4 = aVar59;\n                    }\n                    paVar42 = paVar42 + 1;\n                  } while (paVar42 != paVar48);\n                  if ((int)aVar45 < 0) {\n                    unaff_s8 = aStack_b4;\n                    if (-1 < aStack_c4.idx) {\n                      do {\n                        pwVar9 = (wint_t *)(in_a3.mbcset)->range_ends;\nLAB_00025600:\n                        aVar59 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(pwVar9 + unaff_s8.idx))->idx;\n                        aStack_c8 = aVar59;\n                        iVar6 = (*pcStack_c0)((re_node_set *)(aVar63.mbcset)->nequiv_classes +\n                                              aVar59.idx,aStack_c4.sbcset);\n                        if ((iVar6 == 0) &&\n                           (iVar6 = (*pcStack_c0)((re_node_set *)(aVar63.mbcset)->ncoll_syms +\n                                                  aVar59.idx,aStack_c4.sbcset),\n                           aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23, iVar6 == 0)) {\n                          aVar45 = aStack_c8;\n                          aVar50 = in_a3;\n                          aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset);\n                          puVar67 = puStack_d8;\n                          if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n                          unaff_s8.sbcset = (re_bitset_ptr_t)(unaff_s8.idx + -1);\n                        }\n                        unaff_s8.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(unaff_s8.mbcset)->mbchars)->raw_mbs + 1);\n                      } while (unaff_s8.idx < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc)\n                      ;\n                    }\n                  }\n                  else {\n                    aVar50 = in_a3;\n                    aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23;\n                    aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset);\n                    puVar67 = puStack_d8;\n                    if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n                    if ((-1 < aStack_c4.idx) &&\n                       (unaff_s8 = aStack_b4,\n                       0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc)) {\n                      pwVar9 = (wint_t *)(in_a3.mbcset)->range_ends;\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = aStack_b4;\n                if (0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc) {\n                  do {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)\n                             ((in_a3.mbcset)->range_ends + unaff_s8.idx))->mbcset;\n                    if ((((byte)((re_token_t *)(aVar63.mbcset)->mbchars)[aVar45.idx].field_0x4 - 8 <\n                          2) && (aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23,\n                                (re_dfa_t *)aStack_c8.sbcset ==\n                                (re_dfa_t *)\n                                ((re_token_t *)(aVar63.mbcset)->mbchars)[aVar45.idx].opr.sbcset)) &&\n                       (aVar50 = in_a3,\n                       aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset),\n                       puVar67 = puStack_d8, (re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(unaff_s8.mbcset)->mbchars)->raw_mbs + 1);\n                  } while (unaff_s8.idx < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc);\n                }\n              }\n            }\n            aStack_cc.sbcset =\n                 (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_cc.mbcset)->mbchars)->raw_mbs + 1)\n            ;\n          } while (aStack_cc.idx <\n                   (int)((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch);\n        }\n        aStack_94.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      puVar62 = ((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs;\n      aVar45 = aVar63;\n      aVar50 = in_a3;\n      prVar7 = re_acquire_state(&aStack_94.idx,(re_dfa_t *)aVar63.mbcset,(re_node_set *)in_a3.mbcset\n                               );\n      *(re_dfastate_t **)(puVar62 + aVar64.idx * 4) = prVar7;\n      aVar59 = aStack_94;\n      puVar67 = puStack_d8;\n      if ((re_dfa_t *)aStack_94.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if ((re_dfa_t *)aStack_74.sbcset == (re_dfa_t *)**(int **)(puVar67 + -0x7dbc)) {\n    return (re_dfastate_t *)aVar59.sbcset;\n  }\n  pcVar68 = *(code **)(puVar67 + -0x7ddc);\n  pcVar70 = sift_states_backward;\n  aVar60 = aStack_74;\n  (*pcVar68)();\n  pcStack_f4 = pcVar70;\n  aStack_f8.sbcset = unaff_s8.sbcset;\n  prStack_fc = prVar66;\n  aStack_100.sbcset = aVar63.sbcset;\n  aStack_104.sbcset = aVar5.sbcset;\n  aStack_108.sbcset = aVar59.sbcset;\n  prStack_10c = prVar23;\n  aStack_110.sbcset = aVar64.sbcset;\n  aStack_114.sbcset = in_a3.sbcset;\n  aStack_118.sbcset = aVar46.sbcset;\n  pcStack_158 = pcVar68 + 0x205dc;\n  aStack_11c.mbcset = (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x18820))->mbcset;\n  aVar55 = (anon_union_4_5_a39f51ca_for_opr)(aVar45.mbcset)->char_classes;\n  aVar46 = (anon_union_4_5_a39f51ca_for_opr)(aVar45.mbcset)->range_ends;\n  aVar10.idx = re_node_set_init_1(&rStack_128,aVar46.idx);\n  aVar64 = aVar55;\n  if ((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) {\n    aVar51.sbcset = (re_bitset_ptr_t)&rStack_128;\n    aVar46 = aVar45;\n    aVar50 = aVar55;\n    aStack_13c.sbcset =\n         (re_bitset_ptr_t)\n         update_cur_sifted_state\n                   (aVar60.sbcset,aVar45.sbcset,aVar55.idx,(re_node_set *)aVar51.mbcset);\n    aVar10.idx = aStack_13c.idx;\n    if (((re_dfa_t *)aStack_13c.sbcset == (re_dfa_t *)0x0) && (0 < aVar55.idx)) {\n      aStack_150.idx = (Idx)aStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8.idx = aVar64.idx * 4;\n        if (*(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4) == 0) {\n          aStack_150.sbcset =\n               (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_150.mbcset)->mbchars)->raw_mbs + 1);\n        }\n        else {\n          aStack_150.sbcset = aStack_13c.sbcset;\n        }\n        if (*(int *)(aVar60.idx + 0x78) < aStack_150.idx) {\n          aVar46.sbcset = (re_bitset_ptr_t)0x0;\n          aVar50.idx = unaff_s8.idx;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(rStack_128.elems);\n          aVar10 = aStack_13c;\n          goto LAB_00025e98;\n        }\n        rStack_128.nelem = 0;\n        prVar66 = (*(re_dfastate_t ***)(aVar60.idx + 100) + aVar64.idx)[-1];\n        aVar55.sbcset = (re_bitset_ptr_t)(aVar64.idx + -1);\n        if ((prVar66 != (re_dfastate_t *)0x0) &&\n           (aVar5 = (anon_union_4_5_a39f51ca_for_opr)\n                    ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x54))->mbcset,\n           0 < (prVar66->non_eps_nodes).nelem)) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          aVar63 = aStack_13c;\n          do {\n            aVar46 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)\n                     ((prVar66->non_eps_nodes).elems + aVar63.idx))->idx;\n            iStack_14c = aVar46.idx * 8;\n            aVar51.sbcset = aVar55.sbcset;\n            if ((((Idx *)((int)((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs +\n                         aVar46.idx * 2 * 4))[1] & 0x800U) == 0) {\nLAB_00025d44:\n              aVar50.sbcset = aVar55.sbcset;\n              _Var38 = check_node_accept((re_match_context_t *)aVar60.mbcset,\n                                         (re_token_t *)\n                                         ((int)((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs +\n                                         iStack_14c),aVar55.idx);\n              if ((CONCAT31(extraout_var_00,_Var38) != 0) &&\n                 (iVar6 = *(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs +\n                                  aVar64.idx * 4), iVar6 != 0)) {\n                iVar6 = (*pcStack_138)(iVar6 + 4,\n                                       *(undefined4 *)\n                                        (((re_node_set *)&(aVar5.mbcset)->char_classes)->alloc +\n                                        aVar46.idx * 4));\n                aVar59.idx = 1;\n                if (iVar6 != 0) {\n                  uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->\n                           __wch;\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              pwStack_148 = (aVar45.mbcset)->char_classes;\n              prStack_134 = *(re_dfa_t **)(aVar60.idx + 0x54);\n              aVar50 = aVar60;\n              aVar59.sbcset =\n                   (re_bitset_ptr_t)\n                   check_node_accept_bytes(prStack_134,aVar46.idx,aVar60.sbcset,aVar55.idx);\n              if (aVar59.idx < 1) {\n                if ((re_dfa_t *)aVar59.sbcset == (re_dfa_t *)0x0) goto LAB_00025d44;\n                uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch;\n              }\n              else {\n                if (((int)aVar55.sbcset + (int)aVar59.sbcset <= (int)pwStack_148) &&\n                   ((iVar6 = *(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs +\n                                     (int)((int)aVar55.sbcset + (int)aVar59.sbcset) * 4), iVar6 == 0\n                    || (iVar6 = (*pcStack_138)(iVar6 + 4,prStack_134->nexts[aVar46.idx]), iVar6 == 0\n                       )))) goto LAB_00025d44;\n                uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch;\n              }\nLAB_00025c9c:\n              if (uVar11 != 0) {\n                aVar50 = *(anon_union_4_5_a39f51ca_for_opr *)\n                          (((re_node_set *)&(aVar5.mbcset)->char_classes)->alloc + aVar46.idx * 4);\n                aVar51.sbcset = (int)aVar55.sbcset + aVar59.sbcset;\n                aStack_160 = aVar46;\n                aStack_15c.sbcset = aVar55.sbcset;\n                iVar6 = (*pcStack_12c)(aVar60.sbcset,\n                                       (anon_union_4_5_a39f51ca_for_opr *)(aVar45.idx + 0x10));\n                if (iVar6 != 0) goto LAB_00025cfc;\n              }\n              iVar6 = (*pcStack_130)(&rStack_128);\n              if (iVar6 == 0) {\n                aVar10.idx = 0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            aVar63.sbcset =\n                 (re_bitset_ptr_t)((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 1);\n          } while (aVar63.idx < (prVar66->non_eps_nodes).nelem);\n        }\n        aVar51.sbcset = (re_bitset_ptr_t)&rStack_128;\n        aVar46 = aVar45;\n        aVar50.sbcset = aVar55.sbcset;\n        aVar10.sbcset =\n             (re_bitset_ptr_t)\n             update_cur_sifted_state\n                       (aVar60.sbcset,aVar45.sbcset,aVar55.idx,(re_node_set *)aVar51.mbcset);\n      } while (((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) &&\n              (aVar64.sbcset = aVar55.sbcset, aVar10.sbcset = aVar55.sbcset,\n              (re_dfa_t *)aVar55.sbcset != (re_dfa_t *)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(rStack_128.elems);\n    aVar64 = aVar55;\n  }\nLAB_00025e98:\n  if ((re_dfa_t *)aStack_11c.sbcset == (re_dfa_t *)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return (re_dfastate_t *)aVar10.sbcset;\n  }\n  pcVar68 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar70 = re_compile_internal;\n  aVar57 = aStack_11c;\n  (*pcVar68)();\n  aStack_19c = (anon_union_4_5_a39f51ca_for_opr)\n               (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x1842c))->mbcset;\n  aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n  bVar1 = *(byte *)&((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc;\n  (aVar57.mbcset)->char_classes = (wctype_t *)aVar51;\n  (aVar57.mbcset)->range_ends = (wchar_t *)0x0;\n  (aVar57.mbcset)->ncoll_syms = 0;\n  *(byte *)&((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc = bVar1 & 9;\n  aVar55.mbcset = (re_charset_t *)((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs;\n  aVar52 = aVar51;\n  aStack_198 = aVar64;\n  aStack_194 = aVar60;\n  aStack_190 = aVar45;\n  aStack_18c = aVar10;\n  aStack_188 = aVar59;\n  aStack_184 = aVar5;\n  aStack_180 = aVar63;\n  prStack_17c = prVar66;\n  aStack_178 = unaff_s8;\n  pcStack_174 = pcVar70;\n  if ((uint)((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc < 0x88) {\n    aVar60.idx = 0x88;\n    aVar59 = aVar50;\n    aVar55.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183d0))(aVar55.sbcset);\n    if ((re_dfa_t *)aVar55.sbcset != (re_dfa_t *)0x0) {\n      ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0x88;\n      ((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs = (uchar *)aVar55;\n      goto LAB_00025f80;\n    }\n    aVar64.idx = 0xc;\n  }\n  else {\nLAB_00025f80:\n    (aVar57.mbcset)->range_ends = (wchar_t *)0x88;\n    aVar59.idx = 0x88;\n    aVar60.sbcset = (re_bitset_ptr_t)0x0;\n    (**(code **)(pcVar68 + 0x183a8))(aVar55.sbcset);\n    *(int *)(aVar55.idx + 0x40) = 0x1f;\n    pbVar14 = (byte *)((int)&((re_string_t *)&(aVar50.mbcset)->mbchars)->raw_mbs + 1);\n    if (aVar50.sbcset < (re_dfa_t *)0xaaaaaaa) {\n      (aVar55.mbcset)->range_starts = (wchar_t *)pbVar14;\n      bVar12 = (**(code **)(pcVar68 + 0x183cc))((int)pbVar14 * 8);\n      *aVar55.sbcset = bVar12;\n      if ((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) {\n        aVar10.idx = 1;\n      }\n      else {\n        aVar10.idx = 1;\n        do {\n          aVar10.ctx_type = aVar10.ctx_type << 1;\n        } while (aVar10.sbcset <= aVar50.sbcset);\n      }\n      aVar60 = aVar10;\n      prVar13 = (re_state_table_entry *)(**(code **)(pcVar68 + 0x18330))(0xc);\n      (aVar55.mbcset)->nranges = (Idx)prVar13;\n      aVar10.sbcset = (re_bitset_ptr_t)(aVar10.idx + -1);\n      ((anon_union_4_5_a39f51ca_for_opr *)(aVar55.idx + 0x44))->sbcset = (re_bitset_ptr_t)aVar10;\n      iVar6 = (**(code **)(pcVar68 + 0x183f0))();\n      *(int *)(aVar55.idx + 0x5c) = iVar6;\n      pbVar14 = (byte *)(**(code **)(pcVar68 + 0x1837c))(0xe);\n      if ((((*pbVar14 & 0xdf) == 0x55) && ((pbVar14[1] & 0xdf) == 0x54)) &&\n         (aVar60.idx = 4, (pbVar14[2] & 0xdf) == 0x46)) {\n        iVar6 = 3;\n        if (pbVar14[3] == 0x2d) {\n          iVar6 = 4;\n        }\n        aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x30bc);\n        iVar6 = (**(code **)(pcVar68 + 0x18458))(pbVar14 + iVar6);\n        if (iVar6 == 0) {\n          *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xef;\n      if (1 < *(int *)(aVar55.idx + 0x5c)) {\n        if ((*(byte *)(aVar55.idx + 0x58) & 0x20) == 0) {\n          aVar60.idx = 1;\n          pbVar15 = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x18330))(0x20);\n          *(re_bitset_ptr_t *)(aVar55.idx + 0x3c) = pbVar15;\n          if (pbVar15 == (re_bitset_ptr_t)0x0) goto LAB_00026e64;\n          aVar5.sbcset = (re_bitset_ptr_t)0x0;\n          unaff_s8.idx = 1;\n          do {\n            aVar10.ctx_type = aVar5.ctx_type << 3;\n            uVar11 = 0;\n            do {\n              prVar27 = (re_dfa_t *)(**(code **)(pcVar68 + 0x18398))(aVar10.sbcset);\n              if (prVar27 != (re_dfa_t *)0xffffffff) {\n                prVar41 = (re_context_type *)\n                          ((int)*(re_bitset_ptr_t *)(aVar55.idx + 0x3c) + (int)aVar5.sbcset);\n                aVar60.ctx_type = *prVar41;\n                *prVar41 = aVar60.ctx_type | 1 << (uVar11 & 0x1f);\n              }\n              if (((aVar10.ctx_type & 0xffffff80) == 0) && (prVar27 != (re_dfa_t *)aVar10.sbcset)) {\n                *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xef | 0x10;\n              }\n              uVar11 = uVar11 + 1;\n              aVar10.sbcset =\n                   (re_bitset_ptr_t)((int)&((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs + 1);\n            } while (uVar11 != 0x20);\n            aVar5.sbcset = aVar5.sbcset + 4;\n            aVar63.idx = 0x20;\n          } while (aVar5.sbcset != (re_bitset_ptr_t)0x20);\n        }\n        else {\n          *(re_bitset_ptr_t *)(aVar55.idx + 0x3c) =\n               (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x338c);\n        }\n      }\n      if ((*aVar55.sbcset != 0) &&\n         (aVar10 = aVar50,\n         (re_state_table_entry *)(aVar55.mbcset)->nranges != (re_state_table_entry *)0x0)) {\n        aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n        aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                 ((anon_union_4_2_91654ee9_for___value *)&(aVar57.mbcset)->nmbchars)->__wch;\n        aVar5.ctx_type = aVar51.ctx_type & 0x400000;\n        bVar39 = (re_dfa_t *)aVar5.sbcset != (re_dfa_t *)0x0;\n        unaff_s8.idx._0_3_ = 0;\n        unaff_s8.idx._3_1_ = bVar39;\n        aVar59.idx = 0x4c;\n        aVar60.sbcset = (re_bitset_ptr_t)0x0;\n        (**(code **)(pcVar68 + 0x183a8))(aaStack_1ec);\n        if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {\n          unaff_s8.idx = 1;\n        }\n        cStack_1a5 = (char)unaff_s8.idx;\n        iStack_1a0 = *(int *)(aVar55.idx + 0x5c);\n        bStack_1a7 = (byte)((uint)(*(int *)(aVar55.idx + 0x58) << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)(*(int *)(aVar55.idx + 0x58) << 3) >> 0x1f);\n        aStack_1f0 = aVar46;\n        aStack_1c4 = aVar50;\n        aStack_1c0 = aVar50;\n        aStack_1bc = aVar50;\n        aStack_1b8 = aVar50;\n        aStack_1b0 = aVar63;\n        uStack_1a8 = bVar39;\n        if (0 < aVar50.idx) {\n          aVar60.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n          aVar45.idx = re_string_realloc_buffers((re_string_t *)&aStack_1f0,aVar60.idx);\n          aVar64 = aVar50;\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          aVar46 = aaStack_1ec[0];\n        }\n        aaStack_1ec[0] = aVar46;\n        if ((re_dfa_t *)aVar5.sbcset == (re_dfa_t *)0x0) {\n          if (*(int *)(aVar55.idx + 0x5c) < 2) {\n            if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {\n              re_string_translate_buffer((re_string_t *)&aStack_1f0);\n            }\n          }\n          else {\n            build_wcs_buffer((re_string_t *)&aStack_1f0);\n          }\n        }\n        else {\n          if (1 < *(int *)(aVar55.idx + 0x5c)) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x4f58);\n            aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x697c);\n            do {\n              aVar45.idx = build_wcs_upper_buffer((re_string_t *)&aStack_1f0);\n              aVar64.sbcset = (re_bitset_ptr_t)&aStack_1f0;\n              if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset !=\n                  (anon_union_4_5_a39f51ca_for_opr *)0x0) break;\n              if ((aVar50.idx <= iStack_1d0) ||\n                 (aVar60.ctx_type = iStack_1cc << 1,\n                 iStack_1d4 + *(int *)(aVar55.idx + 0x5c) < iStack_1cc)) goto LAB_000263f8;\n              aVar45.sbcset = (re_bitset_ptr_t)(*(code *)aVar63)(&aStack_1f0);\n            } while ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n                     (anon_union_4_5_a39f51ca_for_opr *)0x0);\n            goto LAB_000261b4;\n          }\n          build_upper_buffer((re_string_t *)&aStack_1f0);\n        }\nLAB_000263f8:\n        aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n        (aVar57.mbcset)->ncoll_syms = 0;\n        aVar63.mbcset = (re_charset_t *)((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs;\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar63.idx + 0x80))->ctx_type = (re_context_type)aVar51\n        ;\n        aVar64.sbcset = (re_bitset_ptr_t)&aStack_1f0;\n        fetch_token((re_token_t *)&rStack_1fc,(re_string_t *)aVar64.mbcset,\n                    aVar51.ctx_type | 0x800000);\n        aVar60 = aVar57;\n        aVar10.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp((re_string_t *)aVar64.mbcset,aVar57.sbcset,(re_token_t *)&rStack_1fc,\n                           aVar51.ctx_type,0,&aStack_204.idx);\n        aVar52.idx = 2;\n        if ((anon_union_4_5_a39f51ca_for_opr *)aStack_204.sbcset ==\n            (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n          aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          aVar60.sbcset = (re_bitset_ptr_t)0x0;\n          aVar50.mbcset =\n               (re_charset_t *)\n               create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          aVar64.mbcset = aVar50.mbcset;\n          if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {\nLAB_000264d8:\n            aVar52.idx = 0x10;\n            aVar60.mbcset = aVar10.mbcset;\n            aVar59 = aVar50;\n            aVar64.sbcset =\n                 (re_bitset_ptr_t)\n                 create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)aVar10.mbcset,aVar50.sbcset,\n                             CONCAT);\n          }\n          if (((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) ||\n             (pcVar70 = *(code **)(pcVar68 + 0x183cc), (re_dfa_t *)aVar64.sbcset == (re_dfa_t *)0x0)\n             ) {\n            aStack_204.idx = 0xc;\n            goto LAB_0002671c;\n          }\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar55.idx + 0x34))->mbcset = (re_charset_t *)aVar64;\n          aVar50.mbcset = (re_charset_t *)*aVar57.sbcset;\n          iVar36 = ((re_node_set *)&(aVar50.mbcset)->range_starts)->alloc;\n          iVar6 = iVar36 << 2;\n          aVar51.sbcset = (re_bitset_ptr_t)(*pcVar70)(iVar6);\n          ((re_node_set *)&(aVar50.mbcset)->char_classes)->alloc = (Idx)aVar51;\n          aVar63.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183cc))(iVar6);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar50.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar63\n          ;\n          aVar10.idx = iVar36 * 0xc;\n          aVar46.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183cc))(aVar10.sbcset);\n          ((anon_union_4_2_91654ee9_for___value *)&(aVar50.mbcset)->nmbchars)->__wch = (uint)aVar46;\n          iVar6 = (**(code **)(pcVar68 + 0x183cc))(aVar10.sbcset);\n          ((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc = iVar6;\n          aVar64.mbcset = aVar50.mbcset;\n          if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) {\n            aVar45.idx = 0xc;\n          }\n          else if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)0x0) {\n            aVar45.idx = 0xc;\n          }\n          else if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                   (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n            aVar45.idx = 0xc;\n          }\n          else if (iVar6 == 0) {\n            aVar45.idx = 0xc;\n          }\n          else {\n            pprVar16 = (re_sub_match_top_t **)\n                       (**(code **)(pcVar68 + 0x183cc))((int)(aVar57.mbcset)->ncoll_syms << 2);\n            *(re_sub_match_top_t ***)(aVar50.idx + 0x84) = pprVar16;\n            if (pprVar16 != (re_sub_match_top_t **)0x0) {\n              prVar17 = (re_sub_match_top_t *)0x0;\n              if ((re_node_set *)(aVar57.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n                do {\n                  (*(re_sub_match_top_t ***)(aVar50.idx + 0x84))[(int)prVar17] = prVar17;\n                  prVar17 = (re_sub_match_top_t *)((int)&prVar17->str_idx + 1);\n                } while (prVar17 < (re_sub_match_top_t *)(aVar57.mbcset)->ncoll_syms);\n              }\n              preorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar68 + 0x18300) + -0x75c0),aVar50.sbcset);\n              prVar17 = (re_sub_match_top_t *)(aVar57.mbcset)->ncoll_syms;\n              if (prVar17 == (re_sub_match_top_t *)0x0) {\nLAB_0002672c:\n                (**(code **)(pcVar68 + 0x18438))(*(re_sub_match_top_t ***)(aVar50.idx + 0x84));\n                *(re_sub_match_top_t ***)(aVar50.idx + 0x84) = (re_sub_match_top_t **)0x0;\n              }\n              else {\n                pprVar16 = *(re_sub_match_top_t ***)(aVar50.idx + 0x84);\n                if (*pprVar16 == (re_sub_match_top_t *)0x0) {\n                  prVar18 = (re_sub_match_top_t *)0x0;\n                  do {\n                    pprVar16 = pprVar16 + 1;\n                    prVar18 = (re_sub_match_top_t *)((int)&prVar18->str_idx + 1);\n                    if (prVar17 == prVar18) {\n                      if (prVar18 == prVar17) goto LAB_0002672c;\n                      break;\n                    }\n                  } while (*pprVar16 == prVar18);\n                }\n              }\n            }\n            aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x6304);\n            aVar45.idx = postorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,\n                                   aVar57.sbcset);\n            aVar59.mbcset = aVar50.mbcset;\n            if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n                (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n              aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x3280);\n              aVar45.idx = postorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,\n                                     aVar50.sbcset);\n              if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n                  (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                aVar10.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x7658);\n                preorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (*(int *)(pcVar68 + 0x18300) + -0x74f4),aVar50.sbcset);\n                aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x1cb0);\n                aVar46.idx = preorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,\n                                      aVar50.sbcset);\n                aVar45.idx = aVar46.idx;\n                if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                    (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                  aVar63.sbcset = (re_bitset_ptr_t)0x0;\n                  unaff_s8.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                  iVar6 = *(int *)(pcVar68 + 0x18300);\n                  aVar10.sbcset = (re_bitset_ptr_t)0x0;\nLAB_0002676c:\n                  if ((re_dfa_t *)(aVar50.mbcset)->range_ends != (re_dfa_t *)aVar10.sbcset) {\nLAB_00026778:\n                    aVar51.idx = aVar10.idx * 0xc;\n                    aVar52.idx = 1;\n                    if (*(int *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc +\n                                 aVar10.idx * 0xc + 4) == 0) {\n                      aVar60.mbcset = aVar50.mbcset;\n                      aVar59 = aVar10;\n                      aVar45.sbcset = (re_bitset_ptr_t)(*(code *)(iVar6 + -0x2cb8))(unaff_s8.sbcset)\n                      ;\n                      if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset !=\n                          (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_000261b4;\n                      aVar51.sbcset =\n                           (re_bitset_ptr_t)\n                           (((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc + aVar10.idx * 0xc)\n                      ;\n                      if (((re_node_set *)&(aVar51.mbcset)->range_starts)->alloc == 0) {\n                        (**(code **)(pcVar68 + 0x18438))(rStack_1fc.elems);\n                        aVar63.idx = 1;\n                      }\n                    }\n                    aVar10.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs + 1);\n                    goto LAB_0002676c;\n                  }\n                  if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {\n                    aVar63.sbcset = (re_bitset_ptr_t)0x0;\n                    aVar10.sbcset = (re_bitset_ptr_t)0x0;\n                    goto LAB_00026778;\n                  }\n                  if ((((((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                      && ((re_node_set *)(aVar57.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                     ((char)*(byte *)(aVar50.idx + 0x58) < '\0')) {\n                    aVar10 = (anon_union_4_5_a39f51ca_for_opr)(aVar50.mbcset)->range_ends;\n                  }\n                  else {\n                    if (*(Idx *)(aVar50.idx + 0x4c) == 0) goto LAB_00026918;\n                    aVar10 = (anon_union_4_5_a39f51ca_for_opr)(aVar50.mbcset)->range_ends;\n                  }\n                  iVar6 = (**(code **)(pcVar68 + 0x183cc))(aVar10.idx * 0xc);\n                  ((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->alloc = iVar6;\n                  if (iVar6 == 0) {\n                    aVar45.idx = 0xc;\n                    goto LAB_000261b4;\n                  }\n                  if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {\n                    iVar6 = 0;\n                    uVar11 = 0;\n                    do {\n                      puVar19 = (undefined1 *)\n                                (((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->alloc + iVar6);\n                      *puVar19 = 0;\n                      puVar19[1] = 0;\n                      puVar19[2] = 0;\n                      puVar19[3] = 0;\n                      puVar19[4] = 0;\n                      puVar19[5] = 0;\n                      puVar19[6] = 0;\n                      puVar19[7] = 0;\n                      puVar19[8] = 0;\n                      puVar19[9] = 0;\n                      puVar19[10] = 0;\n                      puVar19[0xb] = 0;\n                      uVar11 = uVar11 + 1;\n                      iVar6 = iVar6 + 0xc;\n                    } while (uVar11 < (aVar50.mbcset)->range_ends);\n                    iVar6 = *(int *)(pcVar68 + 0x18300);\n                    if ((wint_t *)(aVar50.mbcset)->range_ends != (wint_t *)0x0) {\n                      unaff_s8.sbcset = (re_bitset_ptr_t)0x0;\n                      aStack_210.sbcset = (re_bitset_ptr_t)0x0;\n                      do {\n                        pbVar14 = (byte *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc +\n                                          (int)unaff_s8.sbcset);\n                        aVar10 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(pbVar14 + 8))->sbcset;\n                        if (0 < *(int *)(pbVar14 + 4)) {\n                          aVar51.sbcset = (re_bitset_ptr_t)0x0;\n                          do {\n                            aVar60 = aStack_210;\n                            iVar36 = (*(code *)(iVar6 + -0x6878))\n                                               (((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->\n                                                alloc + (int)*aVar10.sbcset * 0xc);\n                            aVar45.idx = 0xc;\n                            if (iVar36 == 0) goto LAB_000261b4;\n                            aVar51.sbcset =\n                                 (re_bitset_ptr_t)\n                                 ((int)&((re_string_t *)&(aVar51.mbcset)->mbchars)->raw_mbs + 1);\n                            aVar10.sbcset = (re_bitset_ptr_t)&(aVar10.mbcset)->range_starts;\n                          } while (aVar51.idx <\n                                   *(int *)((byte *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->\n                                                     alloc + (int)unaff_s8.sbcset) + 4));\n                        }\n                        aStack_210.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aStack_210.mbcset)->mbchars)->raw_mbs + 1);\n                        unaff_s8.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->char_classes;\n                      } while (aStack_210.sbcset < (re_dfa_t *)(aVar50.mbcset)->range_ends);\n                    }\n                  }\nLAB_00026918:\n                  aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n                  if ((((*(byte *)(aVar55.idx + 0x58) & 0x20) != 0) &&\n                      ((re_dfa_t *)aVar5.sbcset == (re_dfa_t *)0x0)) &&\n                     (((anon_union_4_2_91654ee9_for___value *)&(aVar57.mbcset)->nmbchars)->__wch ==\n                      0)) {\n                    aVar60 = aVar63;\n                    if ((aVar55.mbcset)->range_ends != (wchar_t *)0x0) {\n                      aVar59.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x3438);\n                      if (*(byte *)(*aVar55.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00026a88. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                        prVar7 = (re_dfastate_t *)\n                                 (*(code *)((int)aVar59.sbcset[*(byte *)(*aVar55.sbcset + 4)] +\n                                           (int)(pcVar68 + 0x201e8)))();\n                        return prVar7;\n                      }\n                      (**(code **)(pcVar68 + 0x18344))(0);\n                      if ((re_dfa_t *)aVar60.sbcset != (re_dfa_t *)0x0) {\n                        aVar59.idx = 7;\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        do {\n                          prVar20 = (re_token_t *)(aVar55.mbcset)->mbchars + aVar46.idx;\n                          if (prVar20->field_0x4 == '\x01') {\n                            if ((char)(prVar20->opr).c < '\0') {\n                              *(uint *)&prVar20->field_0x4 =\n                                   *(uint *)&prVar20->field_0x4 & 0xfffffbff;\n                            }\n                          }\n                          else if (prVar20->field_0x4 == '\x05') {\n                            prVar20->field_0x4 = 7;\n                          }\n                          aVar46.sbcset =\n                               (re_bitset_ptr_t)\n                               ((int)&((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + 1);\n                        } while (aVar46.sbcset <\n                                 (anon_union_4_5_a39f51ca_for_opr *)(aVar55.mbcset)->range_ends);\n                      }\n                    }\n                    *(int *)(aVar55.idx + 0x5c) = 1;\n                    if (0 < *(Idx *)(aVar55.idx + 0x4c)) {\n                      aVar60.idx = 1;\n                    }\n                    *(byte *)(aVar55.idx + 0x58) =\n                         *(byte *)(aVar55.idx + 0x58) & 0x9f | (byte)((aVar60.ctx_type & 1) << 6);\n                  }\n                  iVar6 = (*(bin_tree_t **)(aVar55.idx + 0x34))->first->node_idx;\n                  *(int *)(aVar55.idx + 0x48) = iVar6;\n                  aVar60.sbcset =\n                       (re_bitset_ptr_t)((re_node_set *)(aVar55.mbcset)->ncoll_syms + iVar6);\n                  aVar64.idx = re_node_set_init_copy(&rStack_1fc,(re_node_set *)aVar60.mbcset);\n                  aVar10.idx = aVar64.idx;\n                  aStack_200.idx = aVar64.idx;\n                  if ((re_dfa_t *)aVar64.sbcset == (re_dfa_t *)0x0) {\n                    if ((0 < *(Idx *)(aVar55.idx + 0x4c)) &&\n                       (aVar50.sbcset = (re_bitset_ptr_t)0x0, 0 < rStack_1fc.nelem)) {\n                      aVar5.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                      aVar51.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x7800);\n                      aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x5750);\n                      aVar50.sbcset = (re_bitset_ptr_t)0x0;\n                      do {\n                        aVar52 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(rStack_1fc.elems + aVar50.idx)\n                                 )->idx;\n                        aVar59.sbcset =\n                             (re_bitset_ptr_t)((re_token_t *)(aVar55.mbcset)->mbchars + aVar52.idx);\n                        if (*(char *)&((re_node_set *)&(aVar59.mbcset)->range_starts)->alloc ==\n                            '\x04') {\n                          iVar6 = 0;\n                          piVar21 = rStack_1fc.elems;\n                          if (rStack_1fc.nelem < 1) {\nLAB_00026bb4:\n                            if (iVar6 != rStack_1fc.nelem) {\n                              aVar46 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((re_node_set *)(aVar55.mbcset)->nmbchars)[aVar52.idx].elems)\n                                       ->idx;\n                              iVar6 = (*(code *)aVar51)(aVar5.sbcset,aVar46.sbcset);\n                              if (iVar6 == 0) {\n                                aVar60.sbcset =\n                                     (re_bitset_ptr_t)\n                                     ((re_node_set *)(aVar55.mbcset)->ncoll_syms + aVar46.idx);\n                                aVar50.sbcset = (re_bitset_ptr_t)(*(code *)aVar63)(aVar5.sbcset);\n                                aVar10.sbcset = aVar50.sbcset;\n                                if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              prVar20 = (re_token_t *)(aVar55.mbcset)->mbchars + *piVar21;\n                              if ((prVar20->field_0x4 == '\t') &&\n                                 ((prVar20->opr).sbcset == (re_bitset_ptr_t)*aVar59.sbcset))\n                              goto LAB_00026bb4;\n                              iVar6 = iVar6 + 1;\n                              piVar21 = piVar21 + 1;\n                            } while (rStack_1fc.nelem != iVar6);\n                          }\n                        }\n                        aVar50.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar50.mbcset)->mbchars)->raw_mbs + 1);\n                      } while (aVar50.idx < rStack_1fc.nelem);\n                    }\n                    aVar52.sbcset = (re_bitset_ptr_t)0x0;\n                    aVar59.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                    aVar60 = aVar55;\n                    prVar7 = re_acquire_state_context\n                                       (&aStack_200.idx,(re_dfa_t *)aVar55.mbcset,\n                                        (re_node_set *)aVar59.mbcset,0);\n                    (aVar55.mbcset)->nchar_classes = (Idx)prVar7;\n                    aVar10 = aStack_200;\n                    if (prVar7 != (re_dfastate_t *)0x0) {\n                      aVar52.idx = 1;\n                      if ((prVar7->field_0x34 & 1) == 0) {\n                        *(re_dfastate_t **)(aVar55.idx + 0x30) = prVar7;\n                        *(re_dfastate_t **)(aVar55.idx + 0x2c) = prVar7;\n                        *(re_dfastate_t **)(aVar55.idx + 0x28) = prVar7;\n                      }\n                      else {\n                        aVar5.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                        aVar51.sbcset = (re_bitset_ptr_t)&aStack_200;\n                        aVar50.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x2868);\n                        prVar7 = re_acquire_state_context\n                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset\n                                            ,(re_node_set *)aVar5.mbcset,1);\n                        *(re_dfastate_t **)(aVar55.idx + 0x28) = prVar7;\n                        prVar7 = re_acquire_state_context\n                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset\n                                            ,(re_node_set *)aVar5.mbcset,2);\n                        *(re_dfastate_t **)(aVar55.idx + 0x2c) = prVar7;\n                        aVar52.idx = 6;\n                        aVar60 = aVar55;\n                        aVar59.sbcset = aVar5.sbcset;\n                        prVar7 = re_acquire_state_context\n                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset\n                                            ,(re_node_set *)aVar5.mbcset,6);\n                        *(re_dfastate_t **)(aVar55.idx + 0x30) = prVar7;\n                        aVar10 = aStack_200;\n                        if (((*(re_dfastate_t **)(aVar55.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                            (*(re_dfastate_t **)(aVar55.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                           (prVar7 == (re_dfastate_t *)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcVar68 + 0x18438))(rStack_1fc.elems);\n                      aVar10.idx = aVar64.idx;\n                    }\n                  }\nLAB_00026ce0:\n                  aStack_204 = aVar10;\n                  free_workarea_compile((regex_t *)aVar57.mbcset);\n                  re_string_destruct((re_string_t *)&aStack_1f0);\n                  aVar64 = aStack_204;\n                  if ((anon_union_4_5_a39f51ca_for_opr *)aStack_204.sbcset !=\n                      (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                    free_dfa_content((re_dfa_t *)aVar55.mbcset);\n                    *aVar57.sbcset = 0;\n                    ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;\n                    aVar64 = aStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {\n            aVar50.mbcset =\n                 (re_charset_t *)\n                 create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE\n                            );\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          *(bin_tree_t **)(aVar55.idx + 0x34) = (bin_tree_t *)0x0;\n          aVar45 = aStack_204;\n        }\nLAB_000261b4:\n        aStack_204 = aVar45;\n        aVar50 = aVar64;\n        free_workarea_compile((regex_t *)aVar57.mbcset);\n        re_string_destruct((re_string_t *)&aStack_1f0);\n        free_dfa_content((re_dfa_t *)aVar55.mbcset);\n        *aVar57.sbcset = 0;\n        ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;\n        aVar64 = aStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    aStack_204.idx = 0xc;\n    free_dfa_content((re_dfa_t *)aVar55.mbcset);\n    *aVar57.sbcset = 0;\n    ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;\n    aVar64 = aStack_204;\n  }\nLAB_00026d24:\n  if ((re_dfa_t *)aStack_19c.sbcset == (re_dfa_t *)**(undefined4 **)(pcVar68 + 0x1842c)) {\n    return (re_dfastate_t *)aVar64.sbcset;\n  }\n  pcVar68 = *(code **)(pcVar68 + 0x1840c);\n  pcVar70 = build_trtable;\n  aVar64 = aStack_19c;\n  (*pcVar68)();\n  aStack_300.sbcset = (re_bitset_ptr_t)(pcVar68 + 0x1f234);\n  aStack_25c = (anon_union_4_5_a39f51ca_for_opr)\n               (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x17478))->sbcset;\n  aVar45 = aVar60;\n  aStack_258 = aVar55;\n  aStack_254 = aVar57;\n  aStack_250 = aVar50;\n  aStack_24c = aVar10;\n  aStack_248 = aVar51;\n  aStack_244 = aVar5;\n  aStack_240 = aVar63;\n  aStack_23c = aVar46;\n  aStack_238 = unaff_s8;\n  pcStack_234 = pcVar70;\n  aStack_2ec.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x17418))(0x2c00);\n  if ((re_dfa_t *)aStack_2ec.sbcset == (re_dfa_t *)0x0) {\n    prVar7 = (re_dfastate_t *)0x0;\n  }\n  else {\n    ppprStack_2e0 = (re_dfastate_t ***)(aStack_2ec.idx + 0xc00);\n    *(re_dfastate_t **)(aVar60.idx + 0x2c) = (re_dfastate_t *)0x0;\n    *(re_dfastate_t **)(aVar60.idx + 0x30) = (re_dfastate_t *)0x0;\n    aStack_2e4.sbcset = aStack_2ec.sbcset;\n    bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n    aVar63 = aStack_300;\n    if ((int)(aVar60.mbcset)->range_ends < 1) {\n      aVar50.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else {\n      aVar50.sbcset = (re_bitset_ptr_t)0x0;\n      aStack_2f4.sbcset = (re_bitset_ptr_t)0x0;\n      pprStack_2d8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1886;\n      pprStack_2e8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1867;\n      pprStack_2dc = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x14a1;\n      do {\n        aStack_2f0.idx = (Idx)(aStack_2f4.idx * 4);\n        aVar10.sbcset =\n             (re_bitset_ptr_t)\n             ((int)((re_string_t *)&(aVar64.mbcset)->mbchars)->raw_mbs +\n             *(int *)(((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc + aStack_2f4.idx * 4) *\n             2 * 4);\n        aVar46.idx._0_3_ = 0;\n        aVar46.idx._3_1_ = *(byte *)&((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc;\n        aVar55.idx = (((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc << 8) >> 0x16;\n        if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n            (anon_union_4_5_a39f51ca_for_opr *)0x1) {\n          bitset_set((bitset_word_t *)&aaStack_2bc[0].c,(uint)*(byte *)aVar10.sbcset);\n          aVar63 = aStack_300;\nLAB_00026f88:\n          if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) goto LAB_00027078;\n          if ((aVar55.ctx_type & LINE_LAST) != 0) {\n            aVar57.sbcset = (re_bitset_ptr_t)aaStack_2bc;\n            aVar51._3_1_ = bitset_contain(aVar57.sbcset,10);\n            aVar51.idx._0_3_ = extraout_var_01;\n            bitset_empty(aVar57.sbcset);\n            aVar63 = aStack_300;\n            if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) goto LAB_00027478;\n            bitset_set((bitset_word_t *)&aaStack_2bc[0].c,10);\n            aVar63 = aStack_300;\n          }\n          if ((aVar55.ctx_type & BUF_LAST) == 0) {\n            if ((aVar55.ctx_type & 4) == 0) {\nLAB_0002700c:\n              aVar55.ctx_type = aVar55.ctx_type & 8;\n              if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) {\nLAB_00027078:\n                if (aVar50.idx < 1) {\n                  aVar57.sbcset = (re_bitset_ptr_t)0x0;\n                }\n                else {\n                  aVar55.sbcset = (re_bitset_ptr_t)(aStack_2ec.idx + 0xc00);\n                  aVar57.sbcset = (re_bitset_ptr_t)0x0;\n                  aStack_2f8 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar63.idx + -0x7ee8);\n                  aVar5 = aStack_2ec;\n                  do {\n                    if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset !=\n                         (anon_union_4_5_a39f51ca_for_opr *)0x1) ||\n                       (_Var38 = bitset_contain(aVar55.sbcset,(uint)*(byte *)aVar10.sbcset),\n                       aVar63 = aStack_300, CONCAT31(extraout_var_02,_Var38) != 0)) {\n                      paVar48 = aaStack_2bc;\n                      rVar43 = 0;\n                      paVar42 = paVar48;\n                      aVar59 = aVar55;\n                      aVar52 = (anon_union_4_5_a39f51ca_for_opr)&aStack_29c;\n                      do {\n                        rVar22 = paVar42->ctx_type;\n                        pIVar54 = (Idx *)*aVar59.sbcset;\n                        *aVar52.sbcset = rVar22 & (uint)pIVar54;\n                        rVar43 = rVar43 | rVar22 & (uint)pIVar54;\n                        paVar42 = paVar42 + 1;\n                        aVar59.sbcset = (re_bitset_ptr_t)&(aVar59.mbcset)->range_starts;\n                        aVar52.sbcset = aVar52.sbcset + 4;\n                      } while (paVar42 != &aStack_29c);\n                      if (rVar43 != 0) {\n                        aVar59.sbcset = (re_bitset_ptr_t)aaStack_27c;\n                        aVar51.sbcset = (re_bitset_ptr_t)0x0;\n                        rVar43 = 0;\n                        aVar63 = aVar55;\n                        do {\n                          aVar52.ctx_type = paVar48->ctx_type;\n                          pIVar54 = (Idx *)*aVar63.sbcset;\n                          rVar22 = ~aVar52.ctx_type & (uint)pIVar54;\n                          *aVar59.sbcset = rVar22;\n                          rVar43 = rVar43 | rVar22;\n                          rVar22 = ~(uint)pIVar54 & aVar52.ctx_type;\n                          paVar48->ctx_type = rVar22;\n                          aVar51.ctx_type = aVar51.ctx_type | rVar22;\n                          paVar48 = paVar48 + 1;\n                          aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;\n                          aVar59.sbcset = aVar59.sbcset + 4;\n                        } while (aVar63.sbcset != (re_bitset_ptr_t)&(aVar55.mbcset)->nranges);\n                        if (rVar43 != 0) {\n                          paVar42 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (ppprStack_2e0 + aVar50.idx * 8);\n                          *paVar42 = aaStack_27c[0];\n                          paVar42[1] = aaStack_27c[1];\n                          paVar42[2] = aaStack_27c[2];\n                          paVar42[3] = aaStack_27c[3];\n                          paVar42[4] = aStack_26c;\n                          paVar42[5] = aStack_268;\n                          paVar42[6] = aStack_264;\n                          paVar42[7] = aStack_260;\n                          *aVar55.sbcset = (bitset_word_t)aStack_29c;\n                          (aVar55.mbcset)->range_starts = pwStack_298;\n                          (aVar55.mbcset)->range_ends = pIStack_294;\n                          ((re_node_set *)&(aVar55.mbcset)->char_classes)->alloc = IStack_290;\n                          *(Idx **)(aVar55.idx + 0x10) = pIStack_28c;\n                          (aVar55.mbcset)->nmbchars = (Idx)prStack_288;\n                          (aVar55.mbcset)->ncoll_syms = (Idx)prStack_284;\n                          (aVar55.mbcset)->nequiv_classes = (Idx)prStack_280;\n                          iVar6 = (*(code *)pprStack_2dc)\n                                            (aStack_2e4.sbcset + aVar50.idx * 3,aVar5.sbcset);\n                          if (iVar6 != 0) goto LAB_000275d4;\n                          aVar50.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n                        }\n                        iVar6 = (*(code *)pprStack_2e8)\n                                          (aVar5.sbcset,\n                                           *(undefined4 *)\n                                            (((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc\n                                            + (int)aStack_2f0.sbcset));\n                        if (iVar6 == 0) goto LAB_000275d4;\n                        aVar63 = aStack_300;\n                        if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) break;\n                      }\n                    }\n                    aVar57.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs + 1);\n                    aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->nranges;\n                    aVar5.sbcset = (re_bitset_ptr_t)&(aVar5.mbcset)->char_classes;\n                  } while (aVar57.idx < aVar50.idx);\n                }\n                if (aVar50.sbcset == aVar57.sbcset) {\n                  paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(ppprStack_2e0 + aVar50.idx * 8);\n                  paVar42->ctx_type = (re_context_type)aaStack_2bc[0];\n                  paVar42[1] = aaStack_2bc[1];\n                  paVar42[2] = aaStack_2bc[2];\n                  paVar42[3] = aaStack_2bc[3];\n                  paVar42[4] = aaStack_2bc[4];\n                  paVar42[5] = aaStack_2bc[5];\n                  paVar42[6] = aaStack_2bc[6];\n                  paVar42[7] = aaStack_2bc[7];\n                  iVar6 = (*(code *)pprStack_2d8)\n                                    (aStack_2e4.sbcset + aVar50.idx * 3,\n                                     *(undefined4 *)\n                                      (((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc +\n                                      (int)aStack_2f0.sbcset));\n                  if (iVar6 != 0) {\nLAB_000275d4:\n                    if (aVar50.idx < 1) {\n                      aVar50.idx = -1;\n                      aVar63 = aStack_300;\n                    }\n                    else {\n                      aVar57.sbcset = aStack_2ec.sbcset + aVar50.idx * 3;\n                      aVar55 = aStack_2ec;\n                      do {\n                        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))\n                                  ((aVar55.mbcset)->range_ends);\n                        aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;\n                        aVar50.idx = -1;\n                        aVar63 = aStack_300;\n                      } while (aVar55.sbcset != aVar57.sbcset);\n                    }\n                    goto LAB_00027610;\n                  }\n                  bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n                  aVar50.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n                  aVar63 = aStack_300;\n                }\n              }\n              else if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                        (anon_union_4_5_a39f51ca_for_opr *)0x1) &&\n                      ((((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc & 0x200U) != 0)) {\n                bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n                aVar63 = aStack_300;\n              }\n              else {\n                paVar42 = aaStack_2bc;\n                if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {\n                  pprVar49 = (re_node_set **)(aVar64.idx + 0x60);\n                  aVar52.sbcset = (re_bitset_ptr_t)&aStack_29c;\n                  rVar43 = 0;\n                  do {\n                    prVar23 = *pprVar49;\n                    aVar59.ctx_type = paVar42->ctx_type;\n                    paVar42->ctx_type = ~(uint)prVar23 & aVar59.ctx_type;\n                    rVar43 = rVar43 | ~(uint)prVar23 & aVar59.ctx_type;\n                    paVar42 = paVar42 + 1;\n                    pprVar49 = pprVar49 + 1;\n                  } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)aVar52.sbcset);\n                }\n                else {\n                  aVar59.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);\n                  puVar47 = (uint *)((re_node_set *)(aVar64.idx + 0x3c))->alloc;\n                  rVar43 = 0;\n                  do {\n                    aVar52.ctx_type = paVar42->ctx_type;\n                    rVar22 = ~((uint)*aVar59.sbcset & *puVar47) & aVar52.ctx_type;\n                    paVar42->ctx_type = rVar22;\n                    rVar43 = rVar43 | rVar22;\n                    paVar42 = paVar42 + 1;\n                    aVar59.sbcset = aVar59.sbcset + 4;\n                    puVar47 = puVar47 + 1;\n                  } while (paVar42 != &aStack_29c);\n                }\n                if (rVar43 != 0) goto LAB_00027078;\n              }\n            }\n            else if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                      (anon_union_4_5_a39f51ca_for_opr *)0x1) &&\n                    ((((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc & 0x200U) == 0)) {\n              bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n              aVar63 = aStack_300;\n            }\n            else {\n              paVar42 = aaStack_2bc;\n              if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {\n                paVar42 = aaStack_2bc;\n                paVar48 = (anon_union_4_5_a39f51ca_for_opr *)(aVar64.idx + 0x60);\n                aVar52.sbcset = (re_bitset_ptr_t)&aStack_29c;\n                rVar43 = 0;\n                do {\n                  rVar22 = paVar42->ctx_type;\n                  aVar59 = (anon_union_4_5_a39f51ca_for_opr)paVar48->ctx_type;\n                  paVar42->ctx_type = rVar22 & aVar59.ctx_type;\n                  rVar43 = rVar43 | rVar22 & aVar59.ctx_type;\n                  paVar42 = paVar42 + 1;\n                  paVar48 = paVar48 + 1;\n                } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)aVar52.sbcset);\n              }\n              else {\n                aVar59.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);\n                puVar47 = (uint *)((re_node_set *)(aVar64.idx + 0x3c))->alloc;\n                rVar43 = 0;\n                do {\n                  aVar52.ctx_type = paVar42->ctx_type;\n                  rVar22 = (~*puVar47 | (uint)*aVar59.sbcset) & aVar52.ctx_type;\n                  paVar42->ctx_type = rVar22;\n                  rVar43 = rVar43 | rVar22;\n                  paVar42 = paVar42 + 1;\n                  aVar59.sbcset = aVar59.sbcset + 4;\n                  puVar47 = puVar47 + 1;\n                } while (paVar42 != &aStack_29c);\n              }\n              if (rVar43 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n            aVar63 = aStack_300;\n          }\n        }\n        else {\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)0x3) {\n            bitset_merge((bitset_word_t *)&aaStack_2bc[0].c,\n                         (bitset_word_t *)((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs);\n            aVar63 = aStack_300;\n            goto LAB_00026f88;\n          }\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)&DAT_00000005) {\n            if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {\n              aaStack_2bc[0].idx = -1;\n              aaStack_2bc[1].idx = -1;\n              aaStack_2bc[2].idx = -1;\n              aaStack_2bc[3].idx = -1;\n              aaStack_2bc[4].idx = -1;\n              aaStack_2bc[5].idx = -1;\n              aaStack_2bc[6].idx = -1;\n              aaStack_2bc[7].idx = -1;\n            }\n            else {\n              bitset_merge((bitset_word_t *)&aaStack_2bc[0].c,\n                           (bitset_word_t *)((re_node_set *)(aVar64.idx + 0x3c))->alloc);\n              aVar63 = aStack_300;\n            }\n            uVar11 = ((re_node_set *)(aVar64.idx + 0x80))->alloc;\n            if ((uVar11 & 0x40) == 0) {\n              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffbff);\n            }\n            if ((uVar11 & 0x80) != 0) {\n              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)0x7) {\n            aaStack_2bc[0].idx = -1;\n            aaStack_2bc[1].idx = -1;\n            aaStack_2bc[2].idx = -1;\n            aaStack_2bc[3].idx = -1;\n            uVar11 = ((re_node_set *)(aVar64.idx + 0x80))->alloc;\n            if ((uVar11 & 0x40) == 0) {\n              aaStack_2bc[0].idx = -0x401;\n            }\n            if ((uVar11 & 0x80) != 0) {\n              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        aStack_2f4.sbcset =\n             (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_2f4.mbcset)->mbchars)->raw_mbs + 1);\n      } while (aStack_2f4.idx < (int)(aVar60.mbcset)->range_ends);\n      aVar45.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n      if (0 < aVar50.idx) {\n        aStack_2f8.idx = re_node_set_alloc(&rStack_2c8,aVar45.idx);\n        aStack_2cc.idx = aStack_2f8.idx;\n        if (((re_dfa_t *)aStack_2f8.sbcset == (re_dfa_t *)0x0) &&\n           (aVar50.sbcset < (re_dfa_t *)0x155551ab)) {\n          iStack_2d4 = aVar50.idx * 0xc;\n          aStack_2f0.sbcset =\n               (re_bitset_ptr_t)\n               (*(code *)((re_node_set *)(aStack_300.idx + -0x7e1c))->alloc)(iStack_2d4);\n          if ((re_dfa_t *)aStack_2f0.sbcset != (re_dfa_t *)0x0) {\n            aStack_2e4.sbcset = aStack_2f0.sbcset + aVar50.idx;\n            ppprStack_2e0 = (re_dfastate_t ***)(aStack_2e4.sbcset + aVar50.idx);\n            bitset_empty((bitset_word_t *)&aaStack_27c[0].c);\n            aVar5.sbcset = (re_bitset_ptr_t)&(aStack_2ec.mbcset)->range_starts;\n            aStack_2f4.sbcset = aStack_2f8.sbcset;\n            pprStack_2d8 = (re_dfastate_t **)0x0;\n            aVar51.sbcset = (re_bitset_ptr_t)&rStack_2c8;\n            aVar46.sbcset =\n                 (re_bitset_ptr_t)\n                 ((re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x15d4);\n            pprStack_2e8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count +\n                           -0xa1a;\n            pprStack_2dc = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count +\n                           -0x1e7c;\n            do {\n              rStack_2c8.nelem = 0;\n              if (0 < (int)*aVar5.sbcset) {\n                aVar10.idx = -1;\n                aVar63 = aStack_2f8;\n                do {\n                  iVar6 = *(int *)(((re_node_set *)&(aVar64.mbcset)->char_classes)->alloc +\n                                  *(int *)(((re_node_set *)&(aVar5.mbcset)->range_starts)->alloc +\n                                          aVar63.idx * 4) * 4);\n                  if (iVar6 != -1) {\n                    aVar45.sbcset =\n                         (re_bitset_ptr_t)\n                         (((re_node_set *)&(aVar64.mbcset)->ncoll_syms)->alloc + iVar6 * 0xc);\n                    aStack_2cc.sbcset = (re_bitset_ptr_t)(*(code *)aVar46)(aVar51.sbcset);\n                    if ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0) goto LAB_00027794;\n                  }\n                  aVar63.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 1);\n                  aVar52.sbcset = (re_bitset_ptr_t)0x0;\n                } while (aVar63.idx < (int)*aVar5.sbcset);\n              }\n              aVar52.sbcset = (re_bitset_ptr_t)0x0;\n              aVar45 = aVar64;\n              aVar59.sbcset = aVar51.sbcset;\n              pprVar24 = (re_dfastate_t **)(*(code *)pprStack_2e8)(&aStack_2cc);\n              aVar63 = aStack_2f4;\n              pIVar54 = (Idx *)(aStack_2f0.sbcset + aStack_2f4.idx);\n              *pIVar54 = (Idx)pprVar24;\n              if ((pprVar24 == (re_dfastate_t **)0x0) &&\n                 ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0)) {\n                pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);\n                goto LAB_00027798;\n              }\n              if (((uint)pprVar24[0xd] & 0x1000000) == 0) {\n                aStack_2e4.sbcset[aStack_2f4.idx] = (bitset_word_t)pprVar24;\n                ppprStack_2e0[aStack_2f4.idx] = pprVar24;\n              }\n              else {\n                aVar52.idx = 1;\n                aVar45 = aVar64;\n                aVar59.sbcset = aVar51.sbcset;\n                iVar6 = (*(code *)pprStack_2e8)(&aStack_2cc);\n                aStack_2e4.sbcset[aVar63.idx] = iVar6;\n                if ((iVar6 == 0) && ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0)) {\n                  pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);\n                  goto LAB_00027798;\n                }\n                if ((iVar6 != *pIVar54) && (1 < (int)*(Idx **)(aVar64.idx + 0x5c))) {\n                  pprStack_2d8 = (re_dfastate_t **)0x1;\n                }\n                aVar52.idx = 2;\n                aVar45 = aVar64;\n                aVar59.sbcset = aVar51.sbcset;\n                pprVar24 = (re_dfastate_t **)(*(code *)pprStack_2e8)(&aStack_2cc);\n                ppprStack_2e0[aVar63.idx] = pprVar24;\n                if ((pprVar24 == (re_dfastate_t **)0x0) &&\n                   (aVar10 = aVar63, (re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0))\n                goto LAB_00027794;\n              }\n              aVar55 = aStack_2ec;\n              aVar10.idx = aVar63.idx * 0x20;\n              (*(code *)pprStack_2dc)\n                        (aaStack_27c,(re_dfastate_t ***)(aStack_2ec.idx + 0xc00) + aVar63.idx * 8);\n              aStack_2f4.sbcset = (re_bitset_ptr_t)(aStack_2f4.idx + 1);\n              aVar5.sbcset = (re_bitset_ptr_t)&(aVar5.mbcset)->char_classes;\n            } while (aStack_2f4.sbcset != aVar50.sbcset);\n            aVar45.idx = 0x100;\n            if (pprStack_2d8 == (re_dfastate_t **)0x0) {\n              aVar51.sbcset =\n                   (re_bitset_ptr_t)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);\n              ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x2c))->sbcset =\n                   (re_bitset_ptr_t)aVar51;\n              if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) {\nLAB_00027794:\n                pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);\n                aVar63 = aVar10;\nLAB_00027798:\n                (*(code *)pbVar69)(aStack_2f0.sbcset);\n                aVar10 = aVar63;\n                goto LAB_000277a4;\n              }\n              paVar42 = aaStack_27c;\n              aVar64.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              aVar63 = aVar55;\n              do {\n                rVar43 = paVar42->ctx_type;\n                aVar52 = aVar45;\n                if (rVar43 != 0) {\n                  uVar11 = 1;\n                  do {\n                    if ((rVar43 & 1) != 0) {\n                      aVar59 = aStack_2f8;\n                      aVar57 = aVar63;\n                      if ((uVar11 & (uint)*(re_dfastate_t ***)(aVar63.idx + 0xc00)) == 0) {\n                        do {\n                          aVar59.sbcset =\n                               (re_bitset_ptr_t)\n                               ((int)&((re_string_t *)&(aVar59.mbcset)->mbchars)->raw_mbs + 1);\n                          ppIVar33 = (Idx **)(aVar57.idx + 0xc20);\n                          aVar57 = (anon_union_4_5_a39f51ca_for_opr)&(aVar57.mbcset)->nranges;\n                        } while ((uVar11 & (uint)*ppIVar33) == 0);\n                      }\n                      else {\n                        aVar59.sbcset = (re_bitset_ptr_t)0x0;\n                      }\n                      if ((uVar11 & (uint)*aVar64.sbcset) == 0) {\n                        aVar51.sbcset[aVar52.idx] = aStack_2f0.sbcset[aVar59.idx];\n                        aVar59 = aStack_2f0;\n                      }\n                      else {\n                        aVar51.sbcset[aVar52.idx] = aStack_2e4.sbcset[aVar59.idx];\n                        aVar59 = aStack_2e4;\n                      }\n                    }\n                    uVar11 = uVar11 << 1;\n                    rVar43 = rVar43 >> 1;\n                    aVar52.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(aVar52.mbcset)->mbchars)->raw_mbs + 1);\n                  } while (rVar43 != 0);\n                }\n                paVar42 = paVar42 + 1;\n                aVar45.sbcset = (re_bitset_ptr_t)&(aVar45.mbcset)->nranges;\n                aVar64.sbcset = aVar64.sbcset + 4;\n                aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;\n              } while ((re_state_table_entry **)aVar45.sbcset != (re_state_table_entry **)0x100);\n            }\n            else {\n              aVar45.idx = 0x200;\n              aVar51.sbcset =\n                   (re_bitset_ptr_t)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);\n              ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x30))->mbcset =\n                   (re_charset_t *)aVar51;\n              if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) goto LAB_00027794;\n              paVar42 = aaStack_27c;\n              aVar63 = aVar55;\n              aVar45.sbcset = aVar51.sbcset;\n              do {\n                rVar43 = paVar42->ctx_type;\n                if (rVar43 != 0) {\n                  uVar11 = 1;\n                  aVar52 = aVar45;\n                  do {\n                    if ((rVar43 & 1) != 0) {\n                      aVar57.sbcset = (re_bitset_ptr_t)0x0;\n                      pprVar24 = *(re_dfastate_t ***)(aVar63.idx + 0xc00);\n                      aVar4 = aVar63;\n                      aVar3 = aStack_2f8;\n                      while ((uVar11 & (uint)pprVar24) == 0) {\n                        aVar57.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar3.mbcset)->mbchars)->raw_mbs + 1);\n                        aVar59.sbcset = (re_bitset_ptr_t)&(aVar4.mbcset)->nranges;\n                        pprVar24 = *(re_dfastate_t ***)(aVar4.idx + 0xc20);\n                        aVar4 = aVar59;\n                        aVar3.sbcset = aVar57.sbcset;\n                      }\n                      *aVar52.sbcset = aStack_2f0.sbcset[aVar57.idx];\n                      ((re_node_set *)(aVar52.idx + 0x400))->alloc = aStack_2e4.sbcset[aVar57.idx];\n                    }\n                    uVar11 = uVar11 << 1;\n                    rVar43 = rVar43 >> 1;\n                    aVar52.sbcset = (re_bitset_ptr_t)&(aVar52.mbcset)->range_starts;\n                  } while (rVar43 != 0);\n                }\n                paVar42 = paVar42 + 1;\n                aVar45.sbcset = (re_bitset_ptr_t)(aVar45.idx + 0x80);\n                aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;\n              } while ((re_dfa_t *)(aVar51.idx + 0x400) != (re_dfa_t *)aVar45.sbcset);\n            }\n            aVar45.idx = 10;\n            _Var38 = bitset_contain((bitset_word_t *)&aaStack_27c[0].c,10);\n            if (CONCAT31(extraout_var_03,_Var38) != 0) {\n              set = (re_dfastate_t ***)(aStack_2ec.idx + 0xc00);\n              aVar10.sbcset =\n                   (re_bitset_ptr_t)\n                   ((re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1e9a);\n              do {\n                aVar5 = aStack_2f8;\n                aVar45.idx = 10;\n                _Var38 = bitset_contain((bitset_word_t *)set,10);\n                if (CONCAT31(extraout_var_04,_Var38) != 0) {\n                  prVar7 = (re_dfastate_t *)ppprStack_2e0[aVar5.idx];\n                  *(re_dfastate_t **)(aVar51.idx + 0x28) = prVar7;\n                  if (pprStack_2d8 != (re_dfastate_t **)0x0) {\n                    ((re_dfastate_t *)(aVar51.idx + 0x428))->hash = (re_hashval_t)prVar7;\n                  }\n                  break;\n                }\n                aStack_2f8.sbcset =\n                     (re_bitset_ptr_t)\n                     ((int)&((re_string_t *)&(aStack_2f8.mbcset)->mbchars)->raw_mbs + 1);\n                set = set + 8;\n              } while (aStack_2f8.sbcset != aVar50.sbcset);\n            }\n            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2f0.sbcset);\n            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(rStack_2c8.elems);\n            aVar57.sbcset = iStack_2d4 + aVar55.sbcset;\n            do {\n              (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))\n                        ((aVar55.mbcset)->range_ends);\n              aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;\n            } while (aVar57.sbcset != aVar55.sbcset);\n            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2ec.sbcset);\n            prVar7 = (re_dfastate_t *)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(rStack_2c8.elems);\n        aVar57.sbcset = aStack_2ec.sbcset + aVar50.idx * 3;\n        aVar55 = aStack_2ec;\n        do {\n          (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))((aVar55.mbcset)->range_ends)\n          ;\n          aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;\n        } while (aVar55.sbcset != aVar57.sbcset);\n        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2ec.sbcset);\n        prVar7 = (re_dfastate_t *)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)*(bin_tree_storage_t **)(aVar63.idx + -0x7db0))(aStack_2ec.sbcset);\n    aVar45.idx = 0x100;\n    if ((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) {\n      prVar7 = (re_dfastate_t *)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);\n      *(re_dfastate_t **)(aVar60.idx + 0x2c) = prVar7;\n      prVar7 = (re_dfastate_t *)(uint)(prVar7 != (re_dfastate_t *)0x0);\n    }\n    else {\n      prVar7 = (re_dfastate_t *)0x0;\n    }\n  }\nLAB_00027804:\n  if ((re_dfa_t *)aStack_25c.sbcset ==\n      (re_dfa_t *)(*(re_dfastate_t **)(aStack_300.idx + -0x7dbc))->hash) {\n    return prVar7;\n  }\n  pcVar68 = *(code **)(aStack_300.idx + -0x7ddc);\n  pcVar70 = re_search_internal;\n  preg = aStack_25c;\n  (*pcVar68)();\n  aVar3 = aStack_2f4;\n  aVar4 = aStack_300;\n  pcStack_33c = (char *)**(undefined4 **)(pcVar68 + 0x16664);\n  aVar65 = (anon_union_4_5_a39f51ca_for_opr)*preg.sbcset;\n  aVar63.sbcset = (re_bitset_ptr_t)0x0;\n  aStack_338 = aVar55;\n  aStack_334 = aVar57;\n  aStack_330 = aVar50;\n  paStack_32c = (anon_union_4_5_a39f51ca_for_opr *)aVar10;\n  aStack_328 = aVar51;\n  aStack_324 = aVar5;\n  aStack_320 = aVar64;\n  aStack_31c = aVar46;\n  aStack_318 = aVar60;\n  pcStack_314 = pcVar70;\n  aStack_308 = aVar59;\n  (**(code **)(pcVar68 + 0x165e0))(&aStack_3c4,0,0x88);\n  iStack_458 = ((mbstate_t *)(preg.sbcset + 4))->__count;\n  if (iStack_458 != 0) {\n    if ((*(byte *)(preg.sbcset + 7) & 0x10) == 0) {\n      iStack_458 = 0;\n    }\n    else if (aVar52.sbcset == aVar4.sbcset) {\n      iStack_458 = 0;\n    }\n    else if ((char)*(byte *)(preg.sbcset + 7) < '\0') {\n      iStack_458 = 0;\n    }\n  }\n  if ((re_dfa_t *)preg.sbcset[6] < (uint)aStack_2f8) {\n    iStack_428 = (int)(aStack_2f8.idx + -1) - (int)preg.sbcset[6];\n  }\n  else {\n    iStack_428 = 0;\n  }\n  aStack_370 = aVar65;\n  if ((wint_t *)preg.sbcset[2] == (wint_t *)0x0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  if ((aVar65.mbcset)->nchar_classes == 0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  if (*(int *)(aVar65.idx + 0x28) == 0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  if (*(int *)(aVar65.idx + 0x2c) == 0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n           ((anon_union_4_5_a39f51ca_for_opr *)(aVar65.idx + 0x30))->ctx_type;\n  if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)0x0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  aVar5 = aVar4;\n  if ((((*(int *)((aVar65.mbcset)->nchar_classes + 8) == 0) &&\n       (*(int *)(*(int *)(aVar65.idx + 0x28) + 8) == 0)) &&\n      ((*(int *)(*(int *)(aVar65.idx + 0x2c) + 8) == 0 || (((uint)preg.sbcset[7] & 0x1000000) == 0))\n      )) && ((aVar5 = aVar52, (re_dfa_t *)aVar52.sbcset != (re_dfa_t *)0x0 &&\n             (aVar52 = aVar4, aVar5 = aVar4, (re_dfa_t *)aVar4.sbcset != (re_dfa_t *)0x0)))) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  aVar46.sbcset = aStack_2f8.sbcset - iStack_428;\n  if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\n    bVar39 = *(int *)(aVar65.idx + 0x4c) != 0;\n  }\n  else {\n    bVar39 = true;\n  }\n  uVar11 = ((anon_union_4_2_91654ee9_for___value *)(preg.sbcset + 5))->__wch;\n  bStack_37c = (byte)((uint)((int)preg.sbcset[3] << 9) >> 0x1f);\n  aStack_374 = (anon_union_4_5_a39f51ca_for_opr)\n               ((anon_union_4_5_a39f51ca_for_opr *)(aVar65.idx + 0x5c))->idx;\n  aVar59.sbcset = (re_bitset_ptr_t)((int)(aVar65.mbcset)->range_ends + 1);\n  if (aVar59.idx < aStack_374.idx) {\n    aVar59 = aStack_374;\n  }\n  aVar60.idx._0_3_ = 0;\n  aVar60.idx._3_1_ = ((re_bitset_ptr_t)(aStack_308.idx + 1)).idx < aVar59.idx;\n  aStack_394.sbcset = aStack_308.sbcset;\n  aStack_398.sbcset = aStack_308.sbcset;\n  bStack_379 = bStack_37c;\n  if (uVar11 != 0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 3) >> 0x1f);\n  aStack_38c.sbcset = aStack_308.sbcset;\n  aStack_390.sbcset = aStack_308.sbcset;\n  aVar63.sbcset = ((re_bitset_ptr_t)(aStack_308.idx + 1)).sbcset;\n  if ((re_dfa_t *)aVar60.sbcset == (re_dfa_t *)0x0) {\n    aVar63 = aVar59;\n  }\n  aStack_3c4 = aVar45;\n  uStack_384 = uVar11;\n  prStack_460 = (re_dfastate_t *)re_string_realloc_buffers((re_string_t *)&aStack_3c4,aVar63.idx);\n  if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_00028e84;\n  iStack_380 = aVar65.idx + 0x60;\n  bStack_376 = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 4) >> 0x1f);\n  aVar59.sbcset = (re_bitset_ptr_t)0x0;\n  aStack_3a8.sbcset = aVar59.sbcset;\n  if ((bStack_379 == 0) && (aStack_3c0 = aVar45, *(int *)(aVar65.idx + 0x5c) < 2)) {\n    aStack_3a8 = aStack_308;\n  }\n  aStack_38c = aStack_2fc;\n  aStack_390 = aStack_2fc;\n  bStack_377 = (byte)((uint)((int)preg.sbcset[7] << 7) >> 0x1f);\n  iVar6 = *(int *)(aVar65.idx + 0x4c);\n  uVar61 = iVar6 * 2;\n  aStack_36c.sbcset = aStack_2f0.sbcset;\n  aStack_368.idx = -1;\n  aStack_3a4 = aStack_3a8;\n  if ((int)uVar61 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar61;\n    uStack_344 = uVar61;\n    if ((aVar46.sbcset < (re_dfa_t *)0x2) && ((*(byte *)(aVar65.idx + 0x58) & 0x40) == 0)) {\n      aStack_360.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if ((aStack_2f0.ctx_type & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar6 = 1;\n      aVar64 = aVar52;\n      if (aVar5.idx < aVar52.idx) {\n        iVar6 = -1;\n        aVar64 = aVar5;\n      }\n      aVar51 = aVar5;\n      if (aVar5.idx <= aVar52.idx) {\n        aVar51 = aVar52;\n      }\n      iVar36 = *(int *)(aVar65.idx + 0x5c);\n      rVar43 = 8;\n      if (iStack_458 != 0) {\n        if (iVar36 == 1) {\n          aVar59.idx = 4;\n        }\n        else if ((-1 < (int)preg.sbcset[3] << 9) && (uVar11 == 0)) {\n          aVar59.idx = 4;\n        }\n        aVar63.sbcset = (re_bitset_ptr_t)0x0;\n        if (aVar52.idx <= aVar5.idx) {\n          aVar63.idx = 2;\n        }\n        rVar43 = uVar11 != 0 | aVar59.ctx_type | aVar63.ctx_type;\n      }\n      aStack_3ec = aVar52;\n      if (aVar52.idx < aVar64.idx) {\n        prStack_460 = (re_dfastate_t *)0x1;\n      }\n      else if (aVar51.idx < aVar52.idx) {\n        prStack_460 = (re_dfastate_t *)0x1;\n      }\n      else {\n        paVar42 = &aStack_3ec;\n        if (aVar5.idx < aVar52.idx) {\n          paVar42 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        }\n        iVar25 = *(int *)(pcVar68 + 0x16538);\n        iVar26 = *(int *)(pcVar68 + 0x16458);\nLAB_000291e4:\n        aVar5 = aStack_308;\n        if (rVar43 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x000291fc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          prVar7 = (re_dfastate_t *)\n                   (*(pcVar68 + *(int *)(iVar26 + -0x3404 + (rVar43 - 4) * 4) + 0x1e420))();\n          return prVar7;\n        }\n        while( true ) {\n          aVar59 = aStack_3ec;\n          prVar27 = (re_dfa_t *)((int)aStack_3ec.sbcset - iStack_3ac);\n          aVar60 = aStack_2f0;\n          if (aStack_3a4.sbcset <= prVar27) {\n            aVar63 = aStack_3ec;\n            prStack_460 = (re_dfastate_t *)(*(code *)(iVar25 + -0x440))(&aStack_3c4);\n            if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_00028e84;\n            prVar27 = (re_dfa_t *)((int)aVar59.sbcset - iStack_3ac);\n          }\n          if (aVar59.idx < aVar5.idx) {\n            uVar61 = (uint)*(byte *)((int)aStack_3c0.sbcset + (int)prVar27);\n          }\n          else {\n            uVar61 = 0;\n          }\n          aVar59.sbcset = aVar59.sbcset + iVar6;\n          if (*(char *)(iStack_458 + uVar61) != '\0') break;\n          aStack_3ec.sbcset = aVar59.sbcset;\n          if (aVar59.idx < aVar64.idx) {\n            prStack_460 = (re_dfastate_t *)0x1;\n            goto LAB_00028e84;\n          }\n          if (aVar51.idx < aVar59.idx) {\n            prStack_460 = (re_dfastate_t *)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          aVar63 = aStack_3ec;\n          aVar60 = aStack_2f0;\n          prVar7 = (re_dfastate_t *)(*(code *)(iVar25 + -0x440))(&aStack_3c4);\n          aVar59 = aStack_370;\n          aVar5 = aStack_39c;\n          prStack_460 = prVar7;\n          if (prVar7 != (re_dfastate_t *)0x0) goto LAB_00028e84;\n          if (((iVar36 != 1) && ((re_dfa_t *)aStack_3a8.sbcset != (re_dfa_t *)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          aStack_35c.sbcset = (re_bitset_ptr_t)0x0;\n          aStack_448.sbcset = aStack_39c.sbcset;\n          aStack_3e8.sbcset = (re_bitset_ptr_t)0x0;\n          aVar50 = (anon_union_4_5_a39f51ca_for_opr)(aStack_370.mbcset)->nchar_classes;\n          aVar60 = aStack_36c;\n          if ((*(byte *)(aVar50.idx + 0x34) & 1) == 0) break;\n          aVar63.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + -1);\n          uVar61 = re_string_context_at((re_string_t *)&aStack_3c4,aVar63.idx,aStack_36c.idx);\n          if ((uVar61 & 1) == 0) {\n            if (uVar61 == 0) break;\n            if ((uVar61 & 6) == 6) {\n              aVar50 = (anon_union_4_5_a39f51ca_for_opr)\n                       ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x30))->mbcset;\n              goto LAB_000283bc;\n            }\n            if ((uVar61 & 2) != 0) {\n              aVar50 = (anon_union_4_5_a39f51ca_for_opr)\n                       ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x2c))->mbcset;\n              goto LAB_000283bc;\n            }\n            if ((uVar61 & 4) == 0) break;\n            aVar60 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar50.idx + 0x28))->mbcset;\n            aVar63 = aVar59;\n            aVar50.sbcset =\n                 &re_acquire_state_context\n                            (&aStack_3e8.idx,aVar59.sbcset,(re_node_set *)aVar60.mbcset,uVar61)->\n                  hash;\n            if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) break;\n            if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0xc) goto LAB_00028fb4;\n            iVar53 = *(int *)(pcVar68 + 0x16458);\n          }\n          else {\n            aVar50 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x28))->mbcset;\nLAB_000283bc:\n            iVar53 = *(int *)(pcVar68 + 0x16458);\n            if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) break;\n          }\n          aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x16458) + -0x3140);\n          aStack_3ec.sbcset =\n               (re_bitset_ptr_t)\n               (**(code **)(pcVar68 + 0x16570))\n                         (*(int *)(pcVar68 + 0x16458) + -0x30b8,aVar63.sbcset,0x431,iVar53 + -0x33c0\n                         );\n          if (aStack_3ec.sbcset == aVar51.sbcset) {\n            if (aStack_3ec.idx < aStack_308.idx) {\n              uVar61 = (uint)*(byte *)((int)aVar45.sbcset + (int)aStack_3ec.sbcset);\n            }\n            else {\n              uVar61 = 0;\n            }\n            if (uVar11 != 0) {\n              uVar61 = (uint)*(byte *)(uVar11 + uVar61);\n            }\n            if (*(char *)(iStack_458 + uVar61) == '\0') {\n              prStack_460 = (re_dfastate_t *)0x1;\n              aVar60 = aStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar2 = paVar42 != (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        if (((re_dfa_t *)aStack_360.sbcset == (re_dfa_t *)0x0) ||\n           (((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar5.idx))->mbcset =\n                 (re_charset_t *)aVar50, *(int *)(aVar59.idx + 0x4c) == 0)) {\nLAB_000283f0:\n          if ((int)*(bin_tree_t **)(aVar50.idx + 0x34) << 4 < 0) {\n            if (((*(byte *)(aVar50.idx + 0x34) & 1) == 0) ||\n               (aVar63 = aVar50, aVar60 = aVar5,\n               IVar34 = check_halt_state_context\n                                  ((re_match_context_t *)&aStack_3c4,aVar50.idx,aVar5.idx),\n               IVar34 != 0)) {\n              aVar59 = aVar5;\n              if (!bVar39) goto LAB_0002945c;\n              aVar59.idx = 1;\n            }\n            else {\n              aVar5.idx = -1;\n              aVar59.sbcset = (re_bitset_ptr_t)0x0;\n            }\n          }\n          else {\n            aVar5.idx = -1;\n            aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          }\n          iVar53 = *(int *)(pcVar68 + 0x16538);\n          iVar28 = *(int *)(pcVar68 + 0x16538);\n          iVar29 = *(int *)(pcVar68 + 0x16538);\n          paStack_454 = paVar42;\n          while( true ) {\n            uVar71 = CONCAT44(aStack_3a8.sbcset,aStack_394.sbcset);\n            aVar10.sbcset =\n                 (re_bitset_ptr_t)\n                 ((int)&((re_string_t *)&(aStack_39c.mbcset)->mbchars)->raw_mbs + 1);\n            aVar63 = aStack_39c;\n            if (aStack_38c.idx <= aStack_39c.idx) break;\n            if (((int)uStack_3a0 <= aVar10.idx) && ((int)uStack_3a0 < aStack_394.idx))\n            goto LAB_00028534;\n            if (aStack_3a8.idx <= aVar10.idx) {\n              while ((int)((ulonglong)uVar71 >> 0x20) < (int)uVar71) {\nLAB_00028534:\n                aVar63.sbcset =\n                     (re_bitset_ptr_t)\n                     ((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 2);\n                aStack_3e8.sbcset = (re_bitset_ptr_t)(*(code *)(iVar53 + -0x47b0))(&aStack_3c4);\n                if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0x0) break;\n                if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0xc) goto LAB_00028fb4;\n                aVar60.idx = 0x468;\n                aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x16458) + -0x3140);\n                uVar71 = (**(code **)(pcVar68 + 0x16570))\n                                   (*(int *)(pcVar68 + 0x16458) + -0x30b8,aVar63.sbcset,0x468,\n                                    *(int *)(pcVar68 + 0x16458) + -0x33c0);\n                aVar59 = aVar65;\n              }\n            }\n            aVar55 = aStack_370;\n            if ((int)*(bin_tree_t **)(aVar50.idx + 0x34) << 5 < 0) {\n              if (0 < (int)(aVar50.mbcset)->range_ends) {\n                iVar30 = *(int *)(pcVar68 + 0x16538);\n                pcVar70 = (code *)(*(int *)(pcVar68 + 0x16538) + -0x455c);\n                iVar58 = 0;\n                do {\n                  aVar57 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)\n                           (((re_node_set *)&(aVar50.mbcset)->char_classes)->alloc + iVar58 * 4))->\n                           idx;\n                  pwVar56 = (aVar55.mbcset)->mbchars;\n                  uVar61 = pwVar56[aVar57.idx * 2 + 1];\n                  if ((uVar61 & 0x800) != 0) {\n                    if ((uVar61 & 0xffc000) != 0) {\n                      aVar63 = aStack_39c;\n                      uVar32 = (*pcVar70)(&aStack_3c4,aStack_39c.sbcset,aStack_36c.sbcset);\n                      uVar61 = (uint)(pwVar56[aVar57.idx * 2 + 1] << 8) >> 0x16;\n                      if ((uVar61 & 4) == 0) {\n                        uVar44 = uVar32 & 1;\n                        if ((uVar61 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar44 = uVar61 & 8;\n                        if ((uVar32 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar44 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar61 & 0x20) != 0) && ((uVar32 & 2) == 0)) ||\n                         (((uVar61 & 0x80) != 0 && ((uVar32 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    aVar60.sbcset = (re_bitset_ptr_t)&aStack_3c4;\n                    aVar63 = aVar57;\n                    iVar31 = (*(code *)(iVar29 + -0x860))\n                                       (aVar55.sbcset,aVar57.sbcset,aVar60.sbcset,aStack_39c.sbcset)\n                    ;\n                    if (iVar31 != 0) {\n                      aVar52.sbcset = iVar31 + aStack_39c.sbcset;\n                      if (iVar31 <= iStack_34c) {\n                        iVar31 = iStack_34c;\n                      }\n                      aVar63.sbcset = aVar52.sbcset;\n                      iStack_34c = iVar31;\n                      aStack_3e4.sbcset =\n                           (re_bitset_ptr_t)(*(code *)(iVar30 + -0x4648))(&aStack_3c4);\n                      aVar4.sbcset = aStack_3e4.sbcset;\n                      if ((re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0) goto LAB_000294e4;\n                      aVar60.sbcset =\n                           (re_bitset_ptr_t)\n                           ((aVar55.mbcset)->ncoll_syms +\n                           (aVar55.mbcset)->char_classes[aVar57.idx] * 0xc);\n                      pIVar54 = (Idx *)(aStack_360.sbcset + aVar52.idx);\n                      iVar31 = *pIVar54;\n                      if (iVar31 == 0) {\n                        aStack_3e0 = (anon_union_4_5_a39f51ca_for_opr)*aVar60.sbcset;\n                        aStack_3dc = *(anon_union_4_5_a39f51ca_for_opr *)(aVar60.sbcset + 1);\n                        aStack_3d8 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar60.sbcset + 2);\n                        uVar61 = (*pcVar70)(&aStack_3c4,(byte *)(aVar52.idx + -1),aStack_36c.sbcset)\n                        ;\n                        aVar60.sbcset = (re_bitset_ptr_t)&aStack_3e0;\n                        aVar63 = aVar55;\n                        prVar66 = re_acquire_state_context\n                                            (&aStack_3e4.idx,(re_dfa_t *)aVar55.mbcset,\n                                             (re_node_set *)aVar60.mbcset,uVar61);\n                        *pIVar54 = (Idx)prVar66;\n                      }\n                      else {\n                        aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(iVar31 + 0x28))->mbcset;\n                        aStack_3e4.idx =\n                             re_node_set_init_union\n                                       ((re_node_set *)&aStack_3e0,(re_node_set *)aVar63.mbcset,\n                                        (re_node_set *)aVar60.mbcset);\n                        aVar4.idx = aStack_3e4.idx;\n                        if ((re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0) goto LAB_000294e4;\n                        uVar61 = (*pcVar70)(&aStack_3c4,(byte *)(aVar52.idx + -1),aStack_36c.sbcset)\n                        ;\n                        pIVar54 = (Idx *)(aStack_360.sbcset + aVar52.idx);\n                        aVar60.sbcset = (re_bitset_ptr_t)&aStack_3e0;\n                        aVar63 = aVar55;\n                        prVar66 = re_acquire_state_context\n                                            (&aStack_3e4.idx,(re_dfa_t *)aVar55.mbcset,\n                                             (re_node_set *)aVar60.mbcset,uVar61);\n                        *pIVar54 = (Idx)prVar66;\n                        (**(code **)(pcVar68 + 0x16670))(aStack_3d8.sbcset);\n                      }\n                      if ((aStack_360.sbcset[aVar52.idx] == 0) &&\n                         (aVar4 = aStack_3e4, (re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0))\n                      goto LAB_000294e4;\n                    }\n                  }\nLAB_00028744:\n                  iVar58 = iVar58 + 1;\n                } while (iVar58 < (int)(aVar50.mbcset)->range_ends);\n              }\n              aStack_3e8.sbcset = (re_bitset_ptr_t)0x0;\n            }\n            bVar1 = *(byte *)((int)aStack_3c0.sbcset + (int)aStack_39c.sbcset);\n            aStack_39c.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + 1);\n            do {\n              if (*(re_dfastate_t **)(aVar50.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                aVar60 = (anon_union_4_5_a39f51ca_for_opr)\n                         ((anon_union_4_5_a39f51ca_for_opr *)\n                         (&(*(re_dfastate_t **)(aVar50.idx + 0x2c))->hash + bVar1))->mbcset;\nLAB_00028a40:\n                aVar55 = aVar60;\n                if ((re_dfa_t *)aStack_360.sbcset != (re_dfa_t *)0x0) goto LAB_00028a4c;\n                goto LAB_00028a6c;\n              }\n              prVar66 = *(re_dfastate_t **)(aVar50.idx + 0x30);\n              if (prVar66 != (re_dfastate_t *)0x0) {\n                aVar63.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + -1);\n                uVar61 = re_string_context_at((re_string_t *)&aStack_3c4,aVar63.idx,aStack_36c.idx);\n                if ((uVar61 & 1) == 0) {\n                  aVar60 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(&prVar66->hash + bVar1))->mbcset;\n                }\n                else {\n                  aVar60 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)\n                           (&prVar66[0x12].non_eps_nodes.alloc + bVar1))->mbcset;\n                }\n                goto LAB_00028a40;\n              }\n              aVar63 = aVar50;\n              aVar60 = aStack_36c;\n              iVar58 = (*(code *)(iVar28 + 0x6e9c))(aStack_370.sbcset);\n            } while (iVar58 != 0);\n            aStack_3e8.idx = 0xc;\n            aVar4.idx = aStack_3e8.idx;\nLAB_000294e4:\n            aStack_3e8 = aVar4;\n            if ((re_dfa_t *)aStack_360.sbcset == (re_dfa_t *)0x0) {\n              if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) goto LAB_00028fb4;\n              break;\n            }\n            aVar60.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00028a4c:\n            aVar63.sbcset = (re_bitset_ptr_t)&aStack_3c4;\n            aVar55.sbcset =\n                 &merge_state_with_log\n                            (&aStack_3e8.idx,(re_match_context_t *)aVar63.mbcset,aVar60.sbcset)->\n                  hash;\nLAB_00028a6c:\n            if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) {\n              if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) goto LAB_00028fb4;\n              if (((re_dfa_t *)aStack_360.sbcset == (re_dfa_t *)0x0) ||\n                 ((aVar59.sbcset != (re_bitset_ptr_t)0x0 && (!bVar39)))) break;\n              iVar58 = *(int *)(pcVar68 + 0x16538);\n              do {\n                ppIVar33 = (Idx **)(aStack_360.sbcset + aStack_39c.idx);\n                aVar55 = aStack_39c;\n                do {\n                  aVar55.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar55.mbcset)->mbchars)->raw_mbs + 1);\n                  aVar63 = aStack_35c;\n                  if (aStack_35c.idx < aVar55.idx) goto LAB_00029448;\n                  aStack_39c.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + 1);\n                  ppIVar33 = ppIVar33 + 1;\n                } while (*ppIVar33 == (Idx *)0x0);\n                aVar60.sbcset = (re_bitset_ptr_t)0x0;\n                aVar63.sbcset = (re_bitset_ptr_t)&aStack_3c4;\n                aVar55.sbcset = (re_bitset_ptr_t)(*(code *)(iVar58 + 0x4f5c))(&aStack_3e8);\n                if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) {\n                  if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) goto LAB_00029448;\n                  break;\n                }\n                aVar63 = aStack_35c;\n              } while ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0);\n            }\n            aVar57 = aStack_448;\n            if ((bVar2) && (aVar57.sbcset = aVar10.sbcset, aVar50.sbcset != aVar55.sbcset)) {\n              bVar2 = false;\n              aVar57 = aStack_448;\n            }\n            aStack_448 = aVar57;\n            aVar50 = aVar55;\n            if (((*(byte *)(aVar55.idx + 0x34) & 8) != 0) &&\n               (((*(byte *)(aVar55.idx + 0x34) & 1) == 0 ||\n                (aVar63 = aVar55, aVar60 = aStack_39c,\n                IVar34 = check_halt_state_context\n                                   ((re_match_context_t *)&aStack_3c4,aVar55.idx,aStack_39c.idx),\n                IVar34 != 0)))) {\n              aVar59 = aStack_39c;\n              if (!bVar39) goto LAB_0002945c;\n              aVar59.idx = 1;\n              paStack_454 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n              aVar5 = aStack_39c;\n            }\n          }\nLAB_00029448:\n          aVar59 = aVar5;\n          if (paStack_454 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n            paStack_454->sbcset = (int)paStack_454->sbcset + aStack_448.sbcset;\n          }\n        }\n        else {\n          aVar10.sbcset = (re_bitset_ptr_t)&(aVar50.mbcset)->range_starts;\n          aVar60.sbcset = (re_bitset_ptr_t)0x0;\n          aVar63 = aVar10;\n          aStack_3e8.idx =\n               check_subexp_matching_top\n                         ((re_match_context_t *)&aStack_3c4,(re_node_set *)aVar10.mbcset,0);\n          aVar59.idx = aStack_3e8.idx;\n          if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0x0) {\n            if ((*(byte *)(aVar50.idx + 0x34) & 2) == 0) {\n              aVar63 = aVar10;\n              bVar2 = false;\n            }\n            else {\n              aStack_3e8.idx =\n                   transit_state_bkref((re_match_context_t *)&aStack_3c4,\n                                       (re_node_set *)aVar10.mbcset);\n              aVar63 = aVar10;\n              aVar59.idx = aStack_3e8.idx;\n              if ((re_dfa_t *)aStack_3e8.sbcset != (re_dfa_t *)0x0) goto LAB_0002945c;\n              bVar2 = false;\n            }\n            goto LAB_000283f0;\n          }\n        }\nLAB_0002945c:\n        if ((re_dfa_t *)aVar59.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_000291a4:\n          match_ctx_clean((re_match_context_t *)&aStack_3c4);\nLAB_000291bc:\n          aStack_3ec.sbcset = iVar6 + aStack_3ec.sbcset;\n          if (aVar64.idx <= aStack_3ec.idx) goto code_r0x000291d8;\n          prStack_460 = (re_dfastate_t *)0x1;\n          goto LAB_00028e84;\n        }\n        if ((re_dfa_t *)aVar59.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n          prStack_460 = (re_dfastate_t *)0xc;\n          goto LAB_00028e84;\n        }\n        aStack_368 = aVar59;\n        if (((uint)preg.sbcset[7] & 0x8000000) == 0) {\n          if (aVar46.sbcset < (re_dfa_t *)0x2) {\n            if (*(int *)(aVar65.idx + 0x4c) == 0) goto LAB_000292a8;\n            aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar59.idx))->mbcset;\n            aVar60 = aVar59;\n            aStack_364.idx =\n                 check_halt_state_context\n                           ((re_match_context_t *)&aStack_3c4,(re_dfastate_t *)aVar63.mbcset,\n                            aVar59.idx);\n          }\n          else {\n            aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar59.idx))->mbcset;\n            aVar60 = aVar59;\n            aStack_364.idx =\n                 check_halt_state_context\n                           ((re_match_context_t *)&aStack_3c4,(re_dfastate_t *)aVar63.mbcset,\n                            aVar59.idx);\n          }\n          if (aVar46.sbcset < (re_dfa_t *)0x2) {\nLAB_0002930c:\n            if (*(int *)(aVar65.idx + 0x4c) == 0) goto LAB_00028be8;\n          }\n          else {\n            cVar40 = *(char *)(aVar65.idx + 0x58);\nLAB_000292c0:\n            if (-1 < cVar40) goto LAB_0002930c;\n          }\n          aVar50 = aStack_364;\n          aVar5 = aStack_370;\n          if ((uint)aVar59 < (re_dfa_t *)0x3fffffff) {\n            iVar53 = (int)((int)&((re_string_t *)&(aVar59.mbcset)->mbchars)->raw_mbs + 1) * 4;\n            aVar10.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x16604))(iVar53);\n            if ((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) {\nLAB_0002923c:\n              (**(code **)(pcVar68 + 0x16670))(aVar10.sbcset);\n              prStack_460 = (re_dfastate_t *)0xc;\n            }\n            else {\n              aVar63.sbcset = (re_bitset_ptr_t)&aStack_3e0;\n              if (*(int *)(aVar5.idx + 0x4c) == 0) {\n                aStack_3dc.sbcset = (re_bitset_ptr_t)0x0;\n                aStack_3d8.sbcset = aVar50.sbcset;\n                uStack_3d0 = 0;\n                uStack_3cc = 0;\n                uStack_3c8 = 0;\n                aStack_3e0.sbcset = aVar10.sbcset;\n                aStack_3d4 = aVar59;\n                prStack_460 = (re_dfastate_t *)\n                              sift_states_backward\n                                        ((re_match_context_t *)&aStack_3c4,\n                                         (re_sift_context_t *)aVar63.mbcset);\n                (**(code **)(pcVar68 + 0x16670))(uStack_3c8);\n                if (prStack_460 == (re_dfastate_t *)0x0) {\n                  if (*aVar10.sbcset == 0) {\n                    aVar55.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00029210:\n                    (**(code **)(pcVar68 + 0x16670))(aVar10.sbcset);\n                    (**(code **)(pcVar68 + 0x16670))(aVar55.sbcset);\n                    goto LAB_000291a4;\n                  }\nLAB_00028bc8:\n                  (**(code **)(pcVar68 + 0x16670))(aStack_360.sbcset);\n                  aStack_368 = aVar59;\n                  aStack_364 = aVar50;\n                  aStack_360.sbcset = aVar10.sbcset;\n                  goto LAB_00028be8;\n                }\nLAB_0002916c:\n                aVar55.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              else {\n                aVar55.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x16604))(iVar53);\n                if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) goto LAB_0002923c;\n                iVar53 = *(int *)(pcVar68 + 0x16538);\n                iVar28 = *(int *)(pcVar68 + 0x16538);\n                while( true ) {\n                  aVar60.idx = (int)(aVar59.idx + 1) * 4;\n                  (**(code **)(pcVar68 + 0x165e0))(aVar55.sbcset,0);\n                  uStack_3d0 = 0;\n                  uStack_3cc = 0;\n                  uStack_3c8 = 0;\n                  aVar63.sbcset = (re_bitset_ptr_t)&aStack_3e0;\n                  aStack_3e0.sbcset = aVar10.sbcset;\n                  aStack_3dc.sbcset = aVar55.sbcset;\n                  aStack_3d8 = aVar50;\n                  aStack_3d4 = aVar59;\n                  prStack_460 = (re_dfastate_t *)(*(code *)(iVar53 + 0x5af4))(&aStack_3c4);\n                  (**(code **)(pcVar68 + 0x16670))(uStack_3c8);\n                  if (prStack_460 != (re_dfastate_t *)0x0) break;\n                  if ((*aVar10.sbcset != 0) || (*aVar55.sbcset != 0)) {\n                    aVar63.sbcset = aVar10.sbcset;\n                    aVar60.sbcset = aVar55.sbcset;\n                    prStack_460 = (re_dfastate_t *)\n                                  merge_state_array((re_dfa_t *)aVar5.mbcset,\n                                                    (re_dfastate_t **)aVar10.sbcset,\n                                                    (re_dfastate_t **)aVar55.sbcset,\n                                                    (Idx)(aVar59.idx + 1));\n                    (**(code **)(pcVar68 + 0x16670))(aVar55.sbcset);\n                    if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_0002916c;\n                    goto LAB_00028bc8;\n                  }\n                  pIVar54 = (Idx *)(aStack_360.sbcset + aVar59.idx);\n                  do {\n                    while( true ) {\n                      aVar59.sbcset = (re_bitset_ptr_t)(aVar59.idx + -1);\n                      if (aVar59.idx < 0) goto LAB_00029210;\n                      aVar63 = (anon_union_4_5_a39f51ca_for_opr)pIVar54[0xffffffff];\n                      if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) break;\n                      pIVar54 = pIVar54 + 0xffffffff;\n                    }\n                    pIVar54 = pIVar54 + 0xffffffff;\n                  } while ((*(byte *)(aVar63.idx + 0x34) & 8) == 0);\n                  aVar50.sbcset =\n                       (re_bitset_ptr_t)\n                       (*(code *)(iVar28 + -0x4234))(&aStack_3c4,aVar63.sbcset,aVar59.sbcset);\n                }\n              }\n              (**(code **)(pcVar68 + 0x16670))(aVar10.sbcset);\n              (**(code **)(pcVar68 + 0x16670))(aVar55.sbcset);\n              if (prStack_460 == (re_dfastate_t *)0x1) goto LAB_000291a4;\n            }\n          }\n          else {\n            prStack_460 = (re_dfastate_t *)0xc;\n          }\n          goto LAB_00028e84;\n        }\n        if (*(int *)(aVar65.idx + 0x4c) != 0) {\n          aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar59.idx))->mbcset;\n          aVar60 = aVar59;\n          aStack_364.idx =\n               check_halt_state_context\n                         ((re_match_context_t *)&aStack_3c4,(re_dfastate_t *)aVar63.mbcset,\n                          aVar59.idx);\n          goto LAB_0002930c;\n        }\nLAB_000292a8:\n        if ((((uint)preg.sbcset[7] & 0x8000000) == 0) && ((re_dfa_t *)0x1 < aVar46.sbcset)) {\n          cVar40 = *(char *)(aVar65.idx + 0x58);\n          goto LAB_000292c0;\n        }\nLAB_00028be8:\n        prStack_460 = prVar7;\n        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00028e84;\n        if (aVar46.sbcset < (re_dfa_t *)0x2) {\n          *aVar3.sbcset = 0;\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + 1))->idx = (Idx)aStack_368;\n          goto LAB_00028c4c;\n        }\n        paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + 2);\n        do {\n          paVar42[1].idx = -1;\n          paVar42->idx = -1;\n          paVar42 = paVar42 + 2;\n        } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aVar46.idx * 2));\n        *aVar3.sbcset = 0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + 1))->idx = (Idx)aStack_368;\n        if (((uint)preg.sbcset[7] & 0x8000000) != 0) {\nLAB_00028c4c:\n          aVar5 = aVar3;\n          do {\n            aVar63.sbcset = (re_bitset_ptr_t)*aVar5.sbcset;\n            if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0xffffffff) {\n              if (cStack_378 != '\0') {\n                aVar59 = aStack_3a4;\n                if (aVar63.sbcset != aStack_3a8.sbcset) {\n                  aVar59 = *(anon_union_4_5_a39f51ca_for_opr *)(iStack_3b8 + aVar63.idx * 4);\n                }\n                *aVar5.sbcset = (bitset_word_t)aVar59;\n                aVar59 = aStack_3a4;\n                if ((re_dfa_t *)aStack_3a8.sbcset !=\n                    (re_dfa_t *)((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->idx) {\n                  aVar59 = *(anon_union_4_5_a39f51ca_for_opr *)\n                            (iStack_3b8 +\n                            (int)((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->idx * 4);\n                }\n                *(anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1) = aVar59;\n              }\n              ((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs =\n                   ((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs + (int)aStack_3ec.sbcset;\n              aVar63.sbcset =\n                   ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->sbcset +\n                   aStack_3ec.sbcset;\n              ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 1))->sbcset =\n                   (re_bitset_ptr_t)aVar63;\n            }\n            aVar5.sbcset = aVar5.sbcset + 2;\n          } while ((anon_union_4_5_a39f51ca_for_opr *)aVar5.sbcset !=\n                   (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aVar46.idx * 2));\n          if (0 < iStack_428) {\n            paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aVar46.idx * 2);\n            do {\n              paVar42->idx = -1;\n              paVar42[1].idx = -1;\n              paVar42 = paVar42 + 2;\n            } while (paVar42 !=\n                     (anon_union_4_5_a39f51ca_for_opr *)(aVar3.sbcset + aStack_2f8.idx * 2));\n          }\n          aVar60 = aStack_3ec;\n          prStack_460 = prVar7;\n          if (*(int *)(aVar65.idx + 0x84) != 0) {\n            aVar60.sbcset = (re_bitset_ptr_t)(aVar46.idx + -1);\n            prVar27 = (re_dfa_t *)0x0;\n            aVar5 = aVar3;\n            while( true ) {\n              aVar63.idx = (int)prVar27 * 4;\n              if ((re_dfa_t *)aVar60.sbcset == prVar27) break;\n              prVar35 = *(re_dfa_t **)(*(int *)(aVar65.idx + 0x84) + (int)prVar27 * 4);\n              if (prVar35 != prVar27) {\n                aVar5.sbcset[2] =\n                     (bitset_word_t)\n                     *(anon_union_4_5_a39f51ca_for_opr *)\n                      (aVar3.sbcset + (int)((int)&((re_string_t *)&prVar35->nodes)->raw_mbs + 1) * 2\n                      );\n                *(anon_union_4_5_a39f51ca_for_opr *)(aVar5.sbcset + 3) =\n                     *(anon_union_4_5_a39f51ca_for_opr *)\n                      (aVar3.sbcset +\n                      (*(int *)(*(int *)(aVar65.idx + 0x84) + (int)prVar27 * 4) + 1) * 2 + 1);\n              }\n              prVar27 = (re_dfa_t *)((int)&((re_string_t *)&prVar27->nodes)->raw_mbs + 1);\n              aVar5.sbcset = aVar5.sbcset + 2;\n            }\n          }\n          goto LAB_00028e84;\n        }\n        if (*(char *)(aVar65.idx + 0x58) < '\0') {\n          bVar39 = 0 < *(int *)(aVar65.idx + 0x4c);\n        }\n        else {\n          bVar39 = false;\n        }\n        aVar63.sbcset = (re_bitset_ptr_t)&aStack_3c4;\n        aVar60.sbcset = aVar46.sbcset;\n        prStack_460 = (re_dfastate_t *)\n                      set_regs((regex_t *)preg.mbcset,(re_match_context_t *)aVar63.mbcset,\n                               aVar46.ctx_type,(regmatch_t *)aVar3.mbcset,bVar39);\n        if (prStack_460 == (re_dfastate_t *)0x0) goto LAB_00028c4c;\n      }\n    }\n    else if (uStack_3a0 < 0x3fffffff) {\n      aStack_360.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x16604))((uStack_3a0 + 1) * 4);\n      if ((re_dfa_t *)aStack_360.sbcset != (re_dfa_t *)0x0) goto LAB_000290e0;\n      prStack_460 = (re_dfastate_t *)0xc;\n    }\n    else {\n      prStack_460 = (re_dfastate_t *)0xc;\n    }\n  }\n  else {\n    if (uVar61 < 0xccccccd) {\n      iVar36 = (**(code **)(pcVar68 + 0x16604))(iVar6 * 0x28);\n      iStack_350 = iVar36;\n      iStack_340 = (**(code **)(pcVar68 + 0x16604))(iVar6 * 8);\n      if ((iVar36 != 0) && (iStack_340 != 0)) goto LAB_00029090;\n    }\n    prStack_460 = (re_dfastate_t *)0xc;\n  }\nLAB_00028e84:\n  (**(code **)(pcVar68 + 0x16670))(aStack_360.sbcset);\n  preg = aVar60;\n  if (*(int *)(aVar65.idx + 0x4c) != 0) {\n    match_ctx_clean((re_match_context_t *)&aStack_3c4);\n    (**(code **)(pcVar68 + 0x16670))(iStack_340);\n    (**(code **)(pcVar68 + 0x16670))(iStack_350);\n    preg = aVar60;\n  }\n  re_string_destruct((re_string_t *)&aStack_3c4);\nLAB_00028eb4:\n  if (pcStack_33c == (char *)**(int **)(pcVar68 + 0x16664)) {\n    return prStack_460;\n  }\n  pcVar68 = *(code **)(pcVar68 + 0x16644);\n  pattern = pcStack_33c;\n  (*pcVar68)();\n  syntax = **(reg_syntax_t **)(pcVar68 + 0x14ce8);\n  *(byte *)(preg.sbcset + 7) =\n       *(byte *)(preg.sbcset + 7) & 0xf6 | (byte)(((syntax << 6) >> 0x1f) << 3) | 1;\n  rVar37 = re_compile_internal((regex_t *)preg.mbcset,pattern,aVar63.ctx_type,syntax);\n  if (rVar37 == _REG_NOERROR) {\n    prVar7 = (re_dfastate_t *)0x0;\n  }\n  else {\n    prVar7 = (re_dfastate_t *)\n             (**(code **)(pcVar68 + 0x14df4))\n                       (0,*(int *)(pcVar68 + 0x14c04) + -0x3328 +\n                          *(int *)(rVar37 * 4 + *(int *)(pcVar68 + 0x14c04) + -0x336c),5);\n  }\n  return prVar7;\ncode_r0x000291d8:\n  if (aVar51.idx < aStack_3ec.idx) goto LAB_00028e48;\n  goto LAB_000291e4;\nLAB_00028e48:\n  prStack_460 = (re_dfastate_t *)0x1;\n  goto LAB_00028e84;\nLAB_00028fb4:\n  prStack_460 = (re_dfastate_t *)0xc;\n  goto LAB_00028e84;\n}\n\n" comment (function_definition "re_dfastate_t *\nmerge_state_with_log(reg_errcode_t *err,re_match_context_t *mctx,re_dfastate_t *next_state)\n\n{\n  byte bVar1;\n  bool bVar2;\n  anon_union_4_5_a39f51ca_for_opr aVar3;\n  anon_union_4_5_a39f51ca_for_opr aVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  undefined3 extraout_var_02;\n  undefined3 extraout_var_03;\n  undefined3 extraout_var_04;\n  anon_union_4_5_a39f51ca_for_opr aVar5;\n  int iVar6;\n  re_dfastate_t *prVar7;\n  re_backref_cache_entry *prVar8;\n  wint_t *pwVar9;\n  anon_union_4_5_a39f51ca_for_opr aVar10;\n  _Bool _Var38;\n  uint uVar11;\n  bitset_word_t bVar12;\n  re_state_table_entry *prVar13;\n  byte *pbVar14;\n  re_bitset_ptr_t pbVar15;\n  re_sub_match_top_t **pprVar16;\n  re_sub_match_top_t *prVar17;\n  re_sub_match_top_t *prVar18;\n  undefined1 *puVar19;\n  re_token_t *prVar20;\n  int *piVar21;\n  re_context_type rVar22;\n  re_node_set *prVar23;\n  re_dfastate_t **pprVar24;\n  int iVar25;\n  int iVar26;\n  re_dfa_t *prVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  int iVar31;\n  uint uVar32;\n  Idx **ppIVar33;\n  Idx IVar34;\n  bool bVar39;\n  re_dfa_t *prVar35;\n  int iVar36;\n  char cVar40;\n  reg_errcode_t rVar37;\n  re_context_type *prVar41;\n  anon_union_4_5_a39f51ca_for_opr *paVar42;\n  re_context_type rVar43;\n  anon_union_4_5_a39f51ca_for_opr preg;\n  uint uVar44;\n  char *pattern;\n  anon_union_4_5_a39f51ca_for_opr aVar45;\n  anon_union_4_5_a39f51ca_for_opr aVar46;\n  uint *puVar47;\n  anon_union_4_5_a39f51ca_for_opr *paVar48;\n  re_node_set **pprVar49;\n  anon_union_4_5_a39f51ca_for_opr aVar50;\n  anon_union_4_5_a39f51ca_for_opr in_a3;\n  anon_union_4_5_a39f51ca_for_opr aVar51;\n  anon_union_4_5_a39f51ca_for_opr aVar52;\n  int iVar53;\n  reg_syntax_t syntax;\n  Idx *pIVar54;\n  anon_union_4_5_a39f51ca_for_opr aVar55;\n  wchar_t *pwVar56;\n  anon_union_4_5_a39f51ca_for_opr aVar57;\n  re_dfastate_t ***set;\n  int iVar58;\n  anon_union_4_5_a39f51ca_for_opr aVar59;\n  anon_union_4_5_a39f51ca_for_opr aVar60;\n  uint uVar61;\n  anon_union_4_5_a39f51ca_for_opr unaff_s4;\n  uchar *puVar62;\n  re_dfastate_t **unaff_s6;\n  anon_union_4_5_a39f51ca_for_opr aVar63;\n  anon_union_4_5_a39f51ca_for_opr aVar64;\n  anon_union_4_5_a39f51ca_for_opr aVar65;\n  re_dfastate_t *prVar66;\n  undefined *puVar67;\n  code *pcVar68;\n  bin_tree_storage_t *pbVar69;\n  anon_union_4_5_a39f51ca_for_opr unaff_s8;\n  code *pcVar70;\n  undefined8 uVar71;\n  re_dfastate_t *prStack_460;\n  int iStack_458;\n  anon_union_4_5_a39f51ca_for_opr *paStack_454;\n  anon_union_4_5_a39f51ca_for_opr aStack_448;\n  int iStack_428;\n  anon_union_4_5_a39f51ca_for_opr aStack_3ec;\n  anon_union_4_5_a39f51ca_for_opr aStack_3e8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3e4;\n  anon_union_4_5_a39f51ca_for_opr aStack_3e0;\n  anon_union_4_5_a39f51ca_for_opr aStack_3dc;\n  anon_union_4_5_a39f51ca_for_opr aStack_3d8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3c4;\n  anon_union_4_5_a39f51ca_for_opr aStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  anon_union_4_5_a39f51ca_for_opr aStack_3a8;\n  anon_union_4_5_a39f51ca_for_opr aStack_3a4;\n  uint uStack_3a0;\n  anon_union_4_5_a39f51ca_for_opr aStack_39c;\n  anon_union_4_5_a39f51ca_for_opr aStack_398;\n  anon_union_4_5_a39f51ca_for_opr aStack_394;\n  anon_union_4_5_a39f51ca_for_opr aStack_390;\n  anon_union_4_5_a39f51ca_for_opr aStack_38c;\n  undefined4 uStack_388;\n  uint uStack_384;\n  int iStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  anon_union_4_5_a39f51ca_for_opr aStack_374;\n  anon_union_4_5_a39f51ca_for_opr aStack_370;\n  anon_union_4_5_a39f51ca_for_opr aStack_36c;\n  anon_union_4_5_a39f51ca_for_opr aStack_368;\n  anon_union_4_5_a39f51ca_for_opr aStack_364;\n  anon_union_4_5_a39f51ca_for_opr aStack_360;\n  anon_union_4_5_a39f51ca_for_opr aStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  char *pcStack_33c;\n  anon_union_4_5_a39f51ca_for_opr aStack_338;\n  anon_union_4_5_a39f51ca_for_opr aStack_334;\n  anon_union_4_5_a39f51ca_for_opr aStack_330;\n  anon_union_4_5_a39f51ca_for_opr *paStack_32c;\n  anon_union_4_5_a39f51ca_for_opr aStack_328;\n  anon_union_4_5_a39f51ca_for_opr aStack_324;\n  anon_union_4_5_a39f51ca_for_opr aStack_320;\n  anon_union_4_5_a39f51ca_for_opr aStack_31c;\n  anon_union_4_5_a39f51ca_for_opr aStack_318;\n  code *pcStack_314;\n  anon_union_4_5_a39f51ca_for_opr aStack_308;\n  anon_union_4_5_a39f51ca_for_opr aStack_300;\n  anon_union_4_5_a39f51ca_for_opr aStack_2fc;\n  anon_union_4_5_a39f51ca_for_opr aStack_2f8;\n  anon_union_4_5_a39f51ca_for_opr aStack_2f4;\n  anon_union_4_5_a39f51ca_for_opr aStack_2f0;\n  anon_union_4_5_a39f51ca_for_opr aStack_2ec;\n  re_dfastate_t **pprStack_2e8;\n  anon_union_4_5_a39f51ca_for_opr aStack_2e4;\n  re_dfastate_t ***ppprStack_2e0;\n  re_dfastate_t **pprStack_2dc;\n  re_dfastate_t **pprStack_2d8;\n  int iStack_2d4;\n  anon_union_4_5_a39f51ca_for_opr aStack_2cc;\n  re_node_set rStack_2c8;\n  anon_union_4_5_a39f51ca_for_opr aaStack_2bc [8];\n  anon_union_4_5_a39f51ca_for_opr aStack_29c;\n  wchar_t *pwStack_298;\n  Idx *pIStack_294;\n  Idx IStack_290;\n  Idx *pIStack_28c;\n  re_node_set *prStack_288;\n  re_node_set *prStack_284;\n  re_node_set *prStack_280;\n  anon_union_4_5_a39f51ca_for_opr aaStack_27c [4];\n  anon_union_4_5_a39f51ca_for_opr aStack_26c;\n  anon_union_4_5_a39f51ca_for_opr aStack_268;\n  anon_union_4_5_a39f51ca_for_opr aStack_264;\n  anon_union_4_5_a39f51ca_for_opr aStack_260;\n  anon_union_4_5_a39f51ca_for_opr aStack_25c;\n  anon_union_4_5_a39f51ca_for_opr aStack_258;\n  anon_union_4_5_a39f51ca_for_opr aStack_254;\n  anon_union_4_5_a39f51ca_for_opr aStack_250;\n  anon_union_4_5_a39f51ca_for_opr aStack_24c;\n  anon_union_4_5_a39f51ca_for_opr aStack_248;\n  anon_union_4_5_a39f51ca_for_opr aStack_244;\n  anon_union_4_5_a39f51ca_for_opr aStack_240;\n  anon_union_4_5_a39f51ca_for_opr aStack_23c;\n  anon_union_4_5_a39f51ca_for_opr aStack_238;\n  code *pcStack_234;\n  anon_union_4_5_a39f51ca_for_opr aStack_210;\n  anon_union_4_5_a39f51ca_for_opr aStack_204;\n  anon_union_4_5_a39f51ca_for_opr aStack_200;\n  re_node_set rStack_1fc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1f0;\n  anon_union_4_5_a39f51ca_for_opr aaStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c0;\n  anon_union_4_5_a39f51ca_for_opr aStack_1bc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1b8;\n  anon_union_4_5_a39f51ca_for_opr aStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  int iStack_1a0;\n  anon_union_4_5_a39f51ca_for_opr aStack_19c;\n  anon_union_4_5_a39f51ca_for_opr aStack_198;\n  anon_union_4_5_a39f51ca_for_opr aStack_194;\n  anon_union_4_5_a39f51ca_for_opr aStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_18c;\n  anon_union_4_5_a39f51ca_for_opr aStack_188;\n  anon_union_4_5_a39f51ca_for_opr aStack_184;\n  anon_union_4_5_a39f51ca_for_opr aStack_180;\n  re_dfastate_t *prStack_17c;\n  anon_union_4_5_a39f51ca_for_opr aStack_178;\n  code *pcStack_174;\n  anon_union_4_5_a39f51ca_for_opr aStack_160;\n  anon_union_4_5_a39f51ca_for_opr aStack_15c;\n  code *pcStack_158;\n  anon_union_4_5_a39f51ca_for_opr aStack_150;\n  int iStack_14c;\n  wctype_t *pwStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  anon_union_4_5_a39f51ca_for_opr aStack_13c;\n  code *pcStack_138;\n  re_dfa_t *prStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  re_node_set rStack_128;\n  anon_union_4_5_a39f51ca_for_opr aStack_11c;\n  anon_union_4_5_a39f51ca_for_opr aStack_118;\n  anon_union_4_5_a39f51ca_for_opr aStack_114;\n  anon_union_4_5_a39f51ca_for_opr aStack_110;\n  re_node_set *prStack_10c;\n  anon_union_4_5_a39f51ca_for_opr aStack_108;\n  anon_union_4_5_a39f51ca_for_opr aStack_104;\n  anon_union_4_5_a39f51ca_for_opr aStack_100;\n  re_dfastate_t *prStack_fc;\n  anon_union_4_5_a39f51ca_for_opr aStack_f8;\n  code *pcStack_f4;\n  anon_union_4_5_a39f51ca_for_opr aStack_e0;\n  byte *pbStack_dc;\n  undefined *puStack_d8;\n  anon_union_4_5_a39f51ca_for_opr aStack_cc;\n  anon_union_4_5_a39f51ca_for_opr aStack_c8;\n  anon_union_4_5_a39f51ca_for_opr aStack_c4;\n  code *pcStack_c0;\n  re_backref_cache_entry *prStack_bc;\n  code *pcStack_b8;\n  anon_union_4_5_a39f51ca_for_opr aStack_b4;\n  anon_union_4_5_a39f51ca_for_opr aStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  re_dfa_t *prStack_a0;\n  int iStack_9c;\n  anon_union_4_5_a39f51ca_for_opr aStack_94;\n  anon_union_4_5_a39f51ca_for_opr aStack_90;\n  anon_union_4_5_a39f51ca_for_opr aStack_8c;\n  anon_union_4_5_a39f51ca_for_opr aStack_88;\n  anon_union_4_5_a39f51ca_for_opr aStack_84;\n  anon_union_4_5_a39f51ca_for_opr aStack_80;\n  anon_union_4_2_91654ee9_for___value aStack_7c;\n  re_node_set *prStack_78;\n  anon_union_4_5_a39f51ca_for_opr aStack_74;\n  re_match_context_t *prStack_70;\n  re_dfastate_t *prStack_6c;\n  anon_union_4_5_a39f51ca_for_opr aStack_68;\n  anon_union_4_5_a39f51ca_for_opr aStack_64;\n  anon_union_4_5_a39f51ca_for_opr aStack_60;\n  reg_errcode_t *prStack_5c;\n  re_dfastate_t **pprStack_58;\n  re_node_set next_nodes;\n  \n  aVar5 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_0003e314;\n  aVar59 = (anon_union_4_5_a39f51ca_for_opr)(mctx->input).cur_idx;\n  aVar60 = (anon_union_4_5_a39f51ca_for_opr)mctx->dfa;\n  aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx;\n  prVar7 = next_state;\n  if (mctx->state_log_top < (int)aVar59) {\n    mctx->state_log[aVar59.idx] = next_state;\n    mctx->state_log_top = (Idx)aVar59;\nLAB_00024fd0:\n    iVar6 = *(Idx *)(aVar60.idx + 0x4c);\nLAB_00024fd4:\n    aVar64 = (anon_union_4_5_a39f51ca_for_opr)next_state;\n    if ((iVar6 != 0) &&\n       (aVar60.sbcset = (re_bitset_ptr_t)&prVar7->nodes, prVar7 != (re_dfastate_t *)0x0)) {\n      aVar46 = aVar60;\n      aVar64 = aVar59;\n      rVar37 = check_subexp_matching_top(mctx,(re_node_set *)aVar60.mbcset,aVar59.idx);\n      *err = rVar37;\n      if (rVar37 == _REG_NOERROR) {\n        if ((prVar7->field_0x34 & 2) != 0) {\n          aVar46 = aVar60;\n          rVar37 = transit_state_bkref(mctx,(re_node_set *)aVar60.mbcset);\n          *err = rVar37;\n          if (rVar37 == _REG_NOERROR) {\n            prVar7 = mctx->state_log[aVar59.idx];\n          }\n          else {\n            prVar7 = (re_dfastate_t *)0x0;\n          }\n        }\n      }\n      else {\n        prVar7 = (re_dfastate_t *)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4.sbcset = (re_bitset_ptr_t)(mctx->state_log + aVar59.idx);\n    if (*unaff_s4.sbcset == 0) {\n      ((re_string_t *)&(unaff_s4.mbcset)->mbchars)->raw_mbs = (uchar *)next_state;\n      goto LAB_00024fd0;\n    }\n    aVar64 = (anon_union_4_5_a39f51ca_for_opr)\n             ((anon_union_4_5_a39f51ca_for_opr *)(*unaff_s4.sbcset + 0x28))->mbcset;\n    if (next_state == (re_dfastate_t *)0x0) {\n      next_nodes.alloc = *aVar64.sbcset;\n      next_nodes.nelem = ((re_node_set *)&(aVar64.mbcset)->range_starts)->alloc;\n      next_nodes.elems = (aVar64.mbcset)->range_ends;\n      in_a3.ctx_type = re_string_context_at(&mctx->input,(Idx)(aVar59.idx + -1),mctx->eflags);\n      next_state = (re_dfastate_t *)&next_nodes;\n      aVar46 = aVar60;\n      prVar7 = re_acquire_state_context\n                         (err,(re_dfa_t *)aVar60.mbcset,(re_node_set *)next_state,in_a3.ctx_type);\n      ((re_string_t *)&(unaff_s4.mbcset)->mbchars)->raw_mbs = (uchar *)prVar7;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (anon_union_4_5_a39f51ca_for_opr)next_state->entrance_nodes;\n    aVar46 = unaff_s4;\n    rVar37 = re_node_set_init_union\n                       (&next_nodes,(re_node_set *)unaff_s4.mbcset,(re_node_set *)aVar64.mbcset);\n    *err = rVar37;\n    if (rVar37 == _REG_NOERROR) {\n      in_a3.ctx_type = re_string_context_at(&mctx->input,(mctx->input).cur_idx + -1,mctx->eflags);\n      unaff_s6 = mctx->state_log + aVar59.idx;\n      next_state = (re_dfastate_t *)&next_nodes;\n      aVar46 = aVar60;\n      prVar7 = re_acquire_state_context\n                         (err,(re_dfa_t *)aVar60.mbcset,(re_node_set *)next_state,in_a3.ctx_type);\n      *unaff_s6 = prVar7;\n      if ((re_dfa_t *)unaff_s4.sbcset == (re_dfa_t *)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(next_nodes.elems);\n      iVar6 = *(Idx *)(aVar60.idx + 0x4c);\n      goto LAB_00024fd4;\n    }\n    prVar7 = (re_dfastate_t *)0x0;\n  }\n  if ((re_dfa_t *)aVar5.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_0003e314) {\n    return prVar7;\n  }\n  puVar67 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar67 + 0x20ee4;\n  aStack_74 = (anon_union_4_5_a39f51ca_for_opr)\n              (*(anon_union_4_5_a39f51ca_for_opr **)(puVar67 + 0x19128))->mbcset;\n  aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n           ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.idx + 0x54))->mbcset;\n  aStack_94.sbcset = (re_bitset_ptr_t)0x0;\n  prVar66 = (re_dfastate_t *)(aVar64.idx * 4);\n  aVar45 = aVar63;\n  aVar50 = in_a3;\n  aVar51 = in_a3;\n  prStack_70 = mctx;\n  prStack_6c = prVar7;\n  aStack_68 = aVar59;\n  aStack_64 = aVar60;\n  aStack_60 = unaff_s4;\n  prStack_5c = err;\n  pprStack_58 = unaff_s6;\n  if ((*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx] == (re_dfastate_t *)0x0) {\n    prVar23 = (re_node_set *)0x0;\n    if (((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc != 0) {\n      prVar66 = (re_dfastate_t *)\n                (((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4);\n      prVar7 = re_acquire_state(&aStack_94.idx,(re_dfa_t *)aVar63.mbcset,(re_node_set *)in_a3.mbcset\n                               );\n      prVar66->hash = (re_hashval_t)prVar7;\n      aVar59 = aStack_94;\n      puVar67 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    puVar62 = ((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4;\n    puVar62[0] = '\0';\n    puVar62[1] = '\0';\n    puVar62[2] = '\0';\n    puVar62[3] = '\0';\n    aVar45 = aVar46;\n    if (prVar23 == (re_node_set *)0x0) {\n      aVar59.sbcset = (re_bitset_ptr_t)0x0;\n      puVar67 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      aVar59.sbcset = (re_bitset_ptr_t)0x0;\n      puVar67 = puStack_d8;\n      if (((*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx]->field_0x34 & 2) != 0) {\n        aVar45 = aVar64;\n        prStack_a0 = (re_dfa_t *)\n                     search_cur_bkref_entry((re_match_context_t *)aVar5.mbcset,aVar64.idx);\n        aVar59.sbcset = (re_bitset_ptr_t)0x0;\n        puVar67 = puStack_d8;\n        if (prStack_a0 != (re_dfa_t *)0xffffffff) {\n          unaff_s8 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar5.idx + 0x54))->mbcset;\n          aStack_90.sbcset = (re_bitset_ptr_t)0x0;\n          if (prVar23->nelem < 1) {\n            aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          }\n          else {\n            iStack_9c = (int)prStack_a0 * 0x14;\n            aStack_c4.sbcset = (re_bitset_ptr_t)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            aStack_b4.sbcset = (re_bitset_ptr_t)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                       ((anon_union_4_5_a39f51ca_for_opr *)(prVar23->elems + aStack_c4.idx))->\n                       ctx_type;\n              if ((((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)(aVar46.mbcset)->range_ends) ||\n                  ((re_dfa_t *)aVar64.sbcset != (re_dfa_t *)(aVar46.mbcset)->char_classes)) &&\n                 (*(char *)((unaff_s8.mbcset)->mbchars + aVar63.idx * 2 + 1) == '\x04')) {\n                pcStack_b8 = (code *)(aVar63.idx * 0xc);\n                prStack_bc = (re_backref_cache_entry *)(aVar63.ctx_type << 2);\n                aStack_c8.idx = (Idx)prStack_a0;\n                uStack_ac = *(undefined4 *)(puVar67 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar67 + -0x7ee8);\n                aVar59.sbcset =\n                     (re_bitset_ptr_t)\n                     (iStack_9c + (int)&(*(re_backref_cache_entry **)(aVar5.idx + 0x74))->node);\n                do {\n                  in_a3 = aVar59;\n                  if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)*in_a3.sbcset) {\n                    iVar6 = (int)(in_a3.mbcset)->char_classes - (int)(in_a3.mbcset)->range_ends;\n                    pbVar14 = (byte *)((int)aVar64.sbcset + iVar6);\n                    if (iVar6 == 0) {\n                      aStack_cc = **(anon_union_4_5_a39f51ca_for_opr **)\n                                    (pcStack_b8 + (unaff_s8.mbcset)->nmbchars + 8);\n                    }\n                    else {\n                      aStack_cc = *(anon_union_4_5_a39f51ca_for_opr *)\n                                   ((int)&prStack_bc->node + (int)(unaff_s8.mbcset)->char_classes);\n                    }\n                    if ((((int)pbVar14 <= (int)(aVar46.mbcset)->char_classes) &&\n                        (iVar6 = *(int *)(((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs +\n                                         (int)pbVar14 * 4), aVar45 = aStack_cc, iVar6 != 0)) &&\n                       (iVar6 = (*pcStack_c0)(iVar6 + 4), puVar67 = puStack_d8, iVar6 != 0)) {\n                      aVar45.sbcset = (re_bitset_ptr_t)(aVar46.idx + 0x10);\n                      aStack_e0 = aStack_cc;\n                      aVar50 = aVar63;\n                      aVar51 = aVar64;\n                      pbStack_dc = pbVar14;\n                      aStack_b0.sbcset = aVar45.sbcset;\n                      iVar6 = (*(code *)aStack_b4)(aVar5.sbcset);\n                      puVar67 = puStack_d8;\n                      if (iVar6 == 0) {\n                        if ((re_dfa_t *)aStack_90.sbcset == (re_dfa_t *)0x0) {\n                          aStack_90.sbcset =\n                               (re_bitset_ptr_t)((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs;\n                          aVar51 = (anon_union_4_5_a39f51ca_for_opr)\n                                   ((re_node_set *)&(aVar46.mbcset)->range_starts)->alloc;\n                          aVar50 = (anon_union_4_5_a39f51ca_for_opr)(aVar46.mbcset)->range_ends;\n                          aStack_84 = (anon_union_4_5_a39f51ca_for_opr)(aVar46.mbcset)->char_classes\n                          ;\n                          aStack_80 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar46.idx + 0x10);\n                          aStack_7c = *(anon_union_4_2_91654ee9_for___value *)\n                                       &(aVar46.mbcset)->nmbchars;\n                          prStack_78 = (re_node_set *)(aVar46.mbcset)->ncoll_syms;\n                          aVar45 = aStack_b0;\n                          aStack_8c = aVar51;\n                          aStack_88 = aVar50;\n                          aVar59.sbcset =\n                               (re_bitset_ptr_t)\n                               re_node_set_init_copy((re_node_set *)&aStack_80,aStack_b0.sbcset);\n                          puVar67 = puStack_d8;\n                          if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_00025aa0;\n                        }\n                        aVar45 = aStack_c8;\n                        aStack_88 = aVar63;\n                        aStack_84 = aVar64;\n                        _Var38 = re_node_set_insert((re_node_set *)&aStack_80,aStack_c8.idx);\n                        if (CONCAT31(extraout_var,_Var38) == 0) {\n                          aVar59.idx = 0xc;\n                          puVar67 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        in_a3 = *(anon_union_4_5_a39f51ca_for_opr *)(aStack_90.sbcset + aVar64.idx);\n                        aVar45.sbcset = (re_bitset_ptr_t)&aStack_90;\n                        aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_a4)(aVar5.sbcset);\n                        puVar67 = puStack_d8;\n                        if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_00025aa0;\n                        aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_node_set *)&(aVar46.mbcset)->range_starts)->alloc;\n                        aVar51.sbcset = (re_bitset_ptr_t)(aVar64.idx + 1);\n                        if (((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) &&\n                           (aVar50 = aStack_90,\n                           aVar59.sbcset =\n                                (re_bitset_ptr_t)\n                                merge_state_array((re_dfa_t *)unaff_s8.mbcset,\n                                                  (re_dfastate_t **)aVar45.sbcset,aStack_90.sbcset,\n                                                  aVar51.idx), puVar67 = puStack_d8,\n                           (re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0)) goto LAB_00025aa0;\n                        aVar59 = aStack_c8;\n                        *(anon_union_4_5_a39f51ca_for_opr *)(aStack_90.sbcset + aVar64.idx) = in_a3;\n                        iVar6 = (*pcStack_c0)(&aStack_80,aStack_c8.sbcset);\n                        aVar45.sbcset = (re_bitset_ptr_t)(iVar6 + -1);\n                        re_node_set_remove_at((re_node_set *)&aStack_80,aVar45.idx);\n                        in_a3.sbcset = (re_bitset_ptr_t)\n                                       (*(re_backref_cache_entry **)(aVar5.idx + 0x74) + aVar59.idx)\n                        ;\n                        puVar67 = puStack_d8;\n                      }\n                    }\n                  }\n                  aStack_c8.sbcset = (re_bitset_ptr_t)(aStack_c8.idx + 1);\n                  aVar59 = (anon_union_4_5_a39f51ca_for_opr)&(in_a3.mbcset)->nmbchars;\n                } while (*(char *)&((re_node_set *)(in_a3.idx + 0x10))->alloc != '\0');\n              }\n              aStack_c4.sbcset =\n                   (re_bitset_ptr_t)\n                   ((int)&((re_string_t *)&(aStack_c4.mbcset)->mbchars)->raw_mbs + 1);\n              aVar59.sbcset = (re_bitset_ptr_t)0x0;\n            } while (aStack_c4.idx < prVar23->nelem);\nLAB_00025aa0:\n            if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {\n              (**(code **)(puVar67 + -0x7db0))(prStack_78);\n              puVar67 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    prVar23 = &(*(re_dfastate_t ***)(aVar5.idx + 100))[aVar64.idx]->nodes;\n    aVar50 = aVar64;\n    if (((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc == 0) goto LAB_000253c8;\n    aStack_90.sbcset = (re_bitset_ptr_t)0x0;\n    aVar50 = in_a3;\n    unaff_s8.sbcset = &re_acquire_state(&aStack_90.idx,(re_dfa_t *)aVar63.mbcset,in_a3.sbcset)->hash\n    ;\n    aVar59 = aStack_90;\n    puVar67 = puStack_d8;\n    if ((re_dfa_t *)aStack_90.sbcset == (re_dfa_t *)0x0) {\n      aVar50.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;\n      if (((re_node_set *)&(unaff_s8.mbcset)->nequiv_classes)->alloc == 0) {\n        aStack_cc.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;\n        aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                 ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc;\n        aStack_90.idx = re_node_set_alloc((re_node_set *)aStack_cc.mbcset,aVar45.idx);\n        if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {\n          aVar59.idx = 0xc;\n          puVar67 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc) {\n          aStack_c8.sbcset = (re_bitset_ptr_t)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar6 = 0;\n          do {\n            aStack_90.sbcset = (re_bitset_ptr_t)0x0;\n            aVar45.sbcset =\n                 (re_bitset_ptr_t)\n                 ((re_node_set *)(aVar63.mbcset)->nequiv_classes + (in_a3.mbcset)->range_ends[iVar6]\n                 );\n            aStack_90.sbcset = (re_bitset_ptr_t)(*aStack_c8.sbcset)(aStack_cc.sbcset);\n            if ((re_dfa_t *)aStack_90.sbcset != (re_dfa_t *)0x0) {\n              aVar59.idx = 0xc;\n              puVar67 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc);\n        }\n      }\n      aVar50.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->nequiv_classes;\n      aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar23;\n      aVar59.sbcset =\n           (re_bitset_ptr_t)\n           re_node_set_add_intersect(in_a3.sbcset,prVar23,(re_node_set *)aVar50.mbcset);\n      puVar67 = puStack_d8;\n      aStack_b4.idx = aVar59.idx;\n      aStack_94.idx = aVar59.idx;\n      if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n      if (((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch != 0) {\n        prStack_bc = *(re_backref_cache_entry **)(aVar5.idx + 0x74);\n        if (0 < (int)((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          aStack_cc.sbcset = (re_bitset_ptr_t)0x0;\n          do {\n            prVar8 = prStack_bc +\n                     (&((re_node_set *)(aVar46.mbcset)->ncoll_syms)->alloc)[aStack_cc.idx];\n            if ((prVar8->subexp_from < aVar64.idx) && (aVar64.idx <= prVar8->str_idx)) {\n              aVar51.sbcset = (re_bitset_ptr_t)(aVar63.mbcset)->mbchars;\n              aStack_c8 = (anon_union_4_5_a39f51ca_for_opr)\n                          ((anon_union_4_5_a39f51ca_for_opr *)(aVar51.sbcset + prVar8->node * 2))->\n                          sbcset;\n              if ((re_dfa_t *)aVar64.sbcset == (re_dfa_t *)prVar8->subexp_to) {\n                iVar6 = ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc;\n                if (0 < iVar6) {\n                  paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(in_a3.mbcset)->range_ends;\n                  paVar48 = paVar42 + iVar6;\n                  aStack_c4.idx = -1;\n                  aVar45.idx = -1;\n                  do {\n                    aVar59 = (anon_union_4_5_a39f51ca_for_opr)paVar42->mbcset;\n                    ppIVar33 = (Idx **)(aVar51.sbcset + aVar59.idx * 2);\n                    if (*(byte *)(ppIVar33 + 1) == 8) {\n                      if ((re_dfa_t *)aStack_c8.sbcset == (re_dfa_t *)*ppIVar33) {\n                        aVar45 = aVar59;\n                      }\n                    }\n                    else if ((*(byte *)(ppIVar33 + 1) == 9) &&\n                            ((re_dfa_t *)aStack_c8.sbcset == (re_dfa_t *)*ppIVar33)) {\n                      aStack_c4 = aVar59;\n                    }\n                    paVar42 = paVar42 + 1;\n                  } while (paVar42 != paVar48);\n                  if ((int)aVar45 < 0) {\n                    unaff_s8 = aStack_b4;\n                    if (-1 < aStack_c4.idx) {\n                      do {\n                        pwVar9 = (wint_t *)(in_a3.mbcset)->range_ends;\nLAB_00025600:\n                        aVar59 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(pwVar9 + unaff_s8.idx))->idx;\n                        aStack_c8 = aVar59;\n                        iVar6 = (*pcStack_c0)((re_node_set *)(aVar63.mbcset)->nequiv_classes +\n                                              aVar59.idx,aStack_c4.sbcset);\n                        if ((iVar6 == 0) &&\n                           (iVar6 = (*pcStack_c0)((re_node_set *)(aVar63.mbcset)->ncoll_syms +\n                                                  aVar59.idx,aStack_c4.sbcset),\n                           aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23, iVar6 == 0)) {\n                          aVar45 = aStack_c8;\n                          aVar50 = in_a3;\n                          aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset);\n                          puVar67 = puStack_d8;\n                          if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n                          unaff_s8.sbcset = (re_bitset_ptr_t)(unaff_s8.idx + -1);\n                        }\n                        unaff_s8.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(unaff_s8.mbcset)->mbchars)->raw_mbs + 1);\n                      } while (unaff_s8.idx < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc)\n                      ;\n                    }\n                  }\n                  else {\n                    aVar50 = in_a3;\n                    aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23;\n                    aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset);\n                    puVar67 = puStack_d8;\n                    if ((re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n                    if ((-1 < aStack_c4.idx) &&\n                       (unaff_s8 = aStack_b4,\n                       0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc)) {\n                      pwVar9 = (wint_t *)(in_a3.mbcset)->range_ends;\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = aStack_b4;\n                if (0 < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc) {\n                  do {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)\n                             ((in_a3.mbcset)->range_ends + unaff_s8.idx))->mbcset;\n                    if ((((byte)((re_token_t *)(aVar63.mbcset)->mbchars)[aVar45.idx].field_0x4 - 8 <\n                          2) && (aVar51 = (anon_union_4_5_a39f51ca_for_opr)prVar23,\n                                (re_dfa_t *)aStack_c8.sbcset ==\n                                (re_dfa_t *)\n                                ((re_token_t *)(aVar63.mbcset)->mbchars)[aVar45.idx].opr.sbcset)) &&\n                       (aVar50 = in_a3,\n                       aVar59.sbcset = (re_bitset_ptr_t)(*pcStack_b8)(aVar63.sbcset),\n                       puVar67 = puStack_d8, (re_dfa_t *)aVar59.sbcset != (re_dfa_t *)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(unaff_s8.mbcset)->mbchars)->raw_mbs + 1);\n                  } while (unaff_s8.idx < ((re_node_set *)&(in_a3.mbcset)->range_starts)->alloc);\n                }\n              }\n            }\n            aStack_cc.sbcset =\n                 (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_cc.mbcset)->mbchars)->raw_mbs + 1)\n            ;\n          } while (aStack_cc.idx <\n                   (int)((anon_union_4_2_91654ee9_for___value *)&(aVar46.mbcset)->nmbchars)->__wch);\n        }\n        aStack_94.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      puVar62 = ((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs;\n      aVar45 = aVar63;\n      aVar50 = in_a3;\n      prVar7 = re_acquire_state(&aStack_94.idx,(re_dfa_t *)aVar63.mbcset,(re_node_set *)in_a3.mbcset\n                               );\n      *(re_dfastate_t **)(puVar62 + aVar64.idx * 4) = prVar7;\n      aVar59 = aStack_94;\n      puVar67 = puStack_d8;\n      if ((re_dfa_t *)aStack_94.sbcset != (re_dfa_t *)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if ((re_dfa_t *)aStack_74.sbcset == (re_dfa_t *)**(int **)(puVar67 + -0x7dbc)) {\n    return (re_dfastate_t *)aVar59.sbcset;\n  }\n  pcVar68 = *(code **)(puVar67 + -0x7ddc);\n  pcVar70 = sift_states_backward;\n  aVar60 = aStack_74;\n  (*pcVar68)();\n  pcStack_f4 = pcVar70;\n  aStack_f8.sbcset = unaff_s8.sbcset;\n  prStack_fc = prVar66;\n  aStack_100.sbcset = aVar63.sbcset;\n  aStack_104.sbcset = aVar5.sbcset;\n  aStack_108.sbcset = aVar59.sbcset;\n  prStack_10c = prVar23;\n  aStack_110.sbcset = aVar64.sbcset;\n  aStack_114.sbcset = in_a3.sbcset;\n  aStack_118.sbcset = aVar46.sbcset;\n  pcStack_158 = pcVar68 + 0x205dc;\n  aStack_11c.mbcset = (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x18820))->mbcset;\n  aVar55 = (anon_union_4_5_a39f51ca_for_opr)(aVar45.mbcset)->char_classes;\n  aVar46 = (anon_union_4_5_a39f51ca_for_opr)(aVar45.mbcset)->range_ends;\n  aVar10.idx = re_node_set_init_1(&rStack_128,aVar46.idx);\n  aVar64 = aVar55;\n  if ((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) {\n    aVar51.sbcset = (re_bitset_ptr_t)&rStack_128;\n    aVar46 = aVar45;\n    aVar50 = aVar55;\n    aStack_13c.sbcset =\n         (re_bitset_ptr_t)\n         update_cur_sifted_state\n                   (aVar60.sbcset,aVar45.sbcset,aVar55.idx,(re_node_set *)aVar51.mbcset);\n    aVar10.idx = aStack_13c.idx;\n    if (((re_dfa_t *)aStack_13c.sbcset == (re_dfa_t *)0x0) && (0 < aVar55.idx)) {\n      aStack_150.idx = (Idx)aStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8.idx = aVar64.idx * 4;\n        if (*(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + aVar64.idx * 4) == 0) {\n          aStack_150.sbcset =\n               (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_150.mbcset)->mbchars)->raw_mbs + 1);\n        }\n        else {\n          aStack_150.sbcset = aStack_13c.sbcset;\n        }\n        if (*(int *)(aVar60.idx + 0x78) < aStack_150.idx) {\n          aVar46.sbcset = (re_bitset_ptr_t)0x0;\n          aVar50.idx = unaff_s8.idx;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(rStack_128.elems);\n          aVar10 = aStack_13c;\n          goto LAB_00025e98;\n        }\n        rStack_128.nelem = 0;\n        prVar66 = (*(re_dfastate_t ***)(aVar60.idx + 100) + aVar64.idx)[-1];\n        aVar55.sbcset = (re_bitset_ptr_t)(aVar64.idx + -1);\n        if ((prVar66 != (re_dfastate_t *)0x0) &&\n           (aVar5 = (anon_union_4_5_a39f51ca_for_opr)\n                    ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x54))->mbcset,\n           0 < (prVar66->non_eps_nodes).nelem)) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          aVar63 = aStack_13c;\n          do {\n            aVar46 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)\n                     ((prVar66->non_eps_nodes).elems + aVar63.idx))->idx;\n            iStack_14c = aVar46.idx * 8;\n            aVar51.sbcset = aVar55.sbcset;\n            if ((((Idx *)((int)((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs +\n                         aVar46.idx * 2 * 4))[1] & 0x800U) == 0) {\nLAB_00025d44:\n              aVar50.sbcset = aVar55.sbcset;\n              _Var38 = check_node_accept((re_match_context_t *)aVar60.mbcset,\n                                         (re_token_t *)\n                                         ((int)((re_string_t *)&(aVar5.mbcset)->mbchars)->raw_mbs +\n                                         iStack_14c),aVar55.idx);\n              if ((CONCAT31(extraout_var_00,_Var38) != 0) &&\n                 (iVar6 = *(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs +\n                                  aVar64.idx * 4), iVar6 != 0)) {\n                iVar6 = (*pcStack_138)(iVar6 + 4,\n                                       *(undefined4 *)\n                                        (((re_node_set *)&(aVar5.mbcset)->char_classes)->alloc +\n                                        aVar46.idx * 4));\n                aVar59.idx = 1;\n                if (iVar6 != 0) {\n                  uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->\n                           __wch;\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              pwStack_148 = (aVar45.mbcset)->char_classes;\n              prStack_134 = *(re_dfa_t **)(aVar60.idx + 0x54);\n              aVar50 = aVar60;\n              aVar59.sbcset =\n                   (re_bitset_ptr_t)\n                   check_node_accept_bytes(prStack_134,aVar46.idx,aVar60.sbcset,aVar55.idx);\n              if (aVar59.idx < 1) {\n                if ((re_dfa_t *)aVar59.sbcset == (re_dfa_t *)0x0) goto LAB_00025d44;\n                uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch;\n              }\n              else {\n                if (((int)aVar55.sbcset + (int)aVar59.sbcset <= (int)pwStack_148) &&\n                   ((iVar6 = *(int *)(((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs +\n                                     (int)((int)aVar55.sbcset + (int)aVar59.sbcset) * 4), iVar6 == 0\n                    || (iVar6 = (*pcStack_138)(iVar6 + 4,prStack_134->nexts[aVar46.idx]), iVar6 == 0\n                       )))) goto LAB_00025d44;\n                uVar11 = ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch;\n              }\nLAB_00025c9c:\n              if (uVar11 != 0) {\n                aVar50 = *(anon_union_4_5_a39f51ca_for_opr *)\n                          (((re_node_set *)&(aVar5.mbcset)->char_classes)->alloc + aVar46.idx * 4);\n                aVar51.sbcset = (int)aVar55.sbcset + aVar59.sbcset;\n                aStack_160 = aVar46;\n                aStack_15c.sbcset = aVar55.sbcset;\n                iVar6 = (*pcStack_12c)(aVar60.sbcset,\n                                       (anon_union_4_5_a39f51ca_for_opr *)(aVar45.idx + 0x10));\n                if (iVar6 != 0) goto LAB_00025cfc;\n              }\n              iVar6 = (*pcStack_130)(&rStack_128);\n              if (iVar6 == 0) {\n                aVar10.idx = 0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            aVar63.sbcset =\n                 (re_bitset_ptr_t)((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 1);\n          } while (aVar63.idx < (prVar66->non_eps_nodes).nelem);\n        }\n        aVar51.sbcset = (re_bitset_ptr_t)&rStack_128;\n        aVar46 = aVar45;\n        aVar50.sbcset = aVar55.sbcset;\n        aVar10.sbcset =\n             (re_bitset_ptr_t)\n             update_cur_sifted_state\n                       (aVar60.sbcset,aVar45.sbcset,aVar55.idx,(re_node_set *)aVar51.mbcset);\n      } while (((re_dfa_t *)aVar10.sbcset == (re_dfa_t *)0x0) &&\n              (aVar64.sbcset = aVar55.sbcset, aVar10.sbcset = aVar55.sbcset,\n              (re_dfa_t *)aVar55.sbcset != (re_dfa_t *)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(rStack_128.elems);\n    aVar64 = aVar55;\n  }\nLAB_00025e98:\n  if ((re_dfa_t *)aStack_11c.sbcset == (re_dfa_t *)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return (re_dfastate_t *)aVar10.sbcset;\n  }\n  pcVar68 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar70 = re_compile_internal;\n  aVar57 = aStack_11c;\n  (*pcVar68)();\n  aStack_19c = (anon_union_4_5_a39f51ca_for_opr)\n               (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x1842c))->mbcset;\n  aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n  bVar1 = *(byte *)&((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc;\n  (aVar57.mbcset)->char_classes = (wctype_t *)aVar51;\n  (aVar57.mbcset)->range_ends = (wchar_t *)0x0;\n  (aVar57.mbcset)->ncoll_syms = 0;\n  *(byte *)&((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc = bVar1 & 9;\n  aVar55.mbcset = (re_charset_t *)((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs;\n  aVar52 = aVar51;\n  aStack_198 = aVar64;\n  aStack_194 = aVar60;\n  aStack_190 = aVar45;\n  aStack_18c = aVar10;\n  aStack_188 = aVar59;\n  aStack_184 = aVar5;\n  aStack_180 = aVar63;\n  prStack_17c = prVar66;\n  aStack_178 = unaff_s8;\n  pcStack_174 = pcVar70;\n  if ((uint)((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc < 0x88) {\n    aVar60.idx = 0x88;\n    aVar59 = aVar50;\n    aVar55.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183d0))(aVar55.sbcset);\n    if ((re_dfa_t *)aVar55.sbcset != (re_dfa_t *)0x0) {\n      ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0x88;\n      ((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs = (uchar *)aVar55;\n      goto LAB_00025f80;\n    }\n    aVar64.idx = 0xc;\n  }\n  else {\nLAB_00025f80:\n    (aVar57.mbcset)->range_ends = (wchar_t *)0x88;\n    aVar59.idx = 0x88;\n    aVar60.sbcset = (re_bitset_ptr_t)0x0;\n    (**(code **)(pcVar68 + 0x183a8))(aVar55.sbcset);\n    *(int *)(aVar55.idx + 0x40) = 0x1f;\n    pbVar14 = (byte *)((int)&((re_string_t *)&(aVar50.mbcset)->mbchars)->raw_mbs + 1);\n    if (aVar50.sbcset < (re_dfa_t *)0xaaaaaaa) {\n      (aVar55.mbcset)->range_starts = (wchar_t *)pbVar14;\n      bVar12 = (**(code **)(pcVar68 + 0x183cc))((int)pbVar14 * 8);\n      *aVar55.sbcset = bVar12;\n      if ((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) {\n        aVar10.idx = 1;\n      }\n      else {\n        aVar10.idx = 1;\n        do {\n          aVar10.ctx_type = aVar10.ctx_type << 1;\n        } while (aVar10.sbcset <= aVar50.sbcset);\n      }\n      aVar60 = aVar10;\n      prVar13 = (re_state_table_entry *)(**(code **)(pcVar68 + 0x18330))(0xc);\n      (aVar55.mbcset)->nranges = (Idx)prVar13;\n      aVar10.sbcset = (re_bitset_ptr_t)(aVar10.idx + -1);\n      ((anon_union_4_5_a39f51ca_for_opr *)(aVar55.idx + 0x44))->sbcset = (re_bitset_ptr_t)aVar10;\n      iVar6 = (**(code **)(pcVar68 + 0x183f0))();\n      *(int *)(aVar55.idx + 0x5c) = iVar6;\n      pbVar14 = (byte *)(**(code **)(pcVar68 + 0x1837c))(0xe);\n      if ((((*pbVar14 & 0xdf) == 0x55) && ((pbVar14[1] & 0xdf) == 0x54)) &&\n         (aVar60.idx = 4, (pbVar14[2] & 0xdf) == 0x46)) {\n        iVar6 = 3;\n        if (pbVar14[3] == 0x2d) {\n          iVar6 = 4;\n        }\n        aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x30bc);\n        iVar6 = (**(code **)(pcVar68 + 0x18458))(pbVar14 + iVar6);\n        if (iVar6 == 0) {\n          *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xef;\n      if (1 < *(int *)(aVar55.idx + 0x5c)) {\n        if ((*(byte *)(aVar55.idx + 0x58) & 0x20) == 0) {\n          aVar60.idx = 1;\n          pbVar15 = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x18330))(0x20);\n          *(re_bitset_ptr_t *)(aVar55.idx + 0x3c) = pbVar15;\n          if (pbVar15 == (re_bitset_ptr_t)0x0) goto LAB_00026e64;\n          aVar5.sbcset = (re_bitset_ptr_t)0x0;\n          unaff_s8.idx = 1;\n          do {\n            aVar10.ctx_type = aVar5.ctx_type << 3;\n            uVar11 = 0;\n            do {\n              prVar27 = (re_dfa_t *)(**(code **)(pcVar68 + 0x18398))(aVar10.sbcset);\n              if (prVar27 != (re_dfa_t *)0xffffffff) {\n                prVar41 = (re_context_type *)\n                          ((int)*(re_bitset_ptr_t *)(aVar55.idx + 0x3c) + (int)aVar5.sbcset);\n                aVar60.ctx_type = *prVar41;\n                *prVar41 = aVar60.ctx_type | 1 << (uVar11 & 0x1f);\n              }\n              if (((aVar10.ctx_type & 0xffffff80) == 0) && (prVar27 != (re_dfa_t *)aVar10.sbcset)) {\n                *(byte *)(aVar55.idx + 0x58) = *(byte *)(aVar55.idx + 0x58) & 0xef | 0x10;\n              }\n              uVar11 = uVar11 + 1;\n              aVar10.sbcset =\n                   (re_bitset_ptr_t)((int)&((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs + 1);\n            } while (uVar11 != 0x20);\n            aVar5.sbcset = aVar5.sbcset + 4;\n            aVar63.idx = 0x20;\n          } while (aVar5.sbcset != (re_bitset_ptr_t)0x20);\n        }\n        else {\n          *(re_bitset_ptr_t *)(aVar55.idx + 0x3c) =\n               (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x338c);\n        }\n      }\n      if ((*aVar55.sbcset != 0) &&\n         (aVar10 = aVar50,\n         (re_state_table_entry *)(aVar55.mbcset)->nranges != (re_state_table_entry *)0x0)) {\n        aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n        aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                 ((anon_union_4_2_91654ee9_for___value *)&(aVar57.mbcset)->nmbchars)->__wch;\n        aVar5.ctx_type = aVar51.ctx_type & 0x400000;\n        bVar39 = (re_dfa_t *)aVar5.sbcset != (re_dfa_t *)0x0;\n        unaff_s8.idx._0_3_ = 0;\n        unaff_s8.idx._3_1_ = bVar39;\n        aVar59.idx = 0x4c;\n        aVar60.sbcset = (re_bitset_ptr_t)0x0;\n        (**(code **)(pcVar68 + 0x183a8))(aaStack_1ec);\n        if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {\n          unaff_s8.idx = 1;\n        }\n        cStack_1a5 = (char)unaff_s8.idx;\n        iStack_1a0 = *(int *)(aVar55.idx + 0x5c);\n        bStack_1a7 = (byte)((uint)(*(int *)(aVar55.idx + 0x58) << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)(*(int *)(aVar55.idx + 0x58) << 3) >> 0x1f);\n        aStack_1f0 = aVar46;\n        aStack_1c4 = aVar50;\n        aStack_1c0 = aVar50;\n        aStack_1bc = aVar50;\n        aStack_1b8 = aVar50;\n        aStack_1b0 = aVar63;\n        uStack_1a8 = bVar39;\n        if (0 < aVar50.idx) {\n          aVar60.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n          aVar45.idx = re_string_realloc_buffers((re_string_t *)&aStack_1f0,aVar60.idx);\n          aVar64 = aVar50;\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          aVar46 = aaStack_1ec[0];\n        }\n        aaStack_1ec[0] = aVar46;\n        if ((re_dfa_t *)aVar5.sbcset == (re_dfa_t *)0x0) {\n          if (*(int *)(aVar55.idx + 0x5c) < 2) {\n            if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {\n              re_string_translate_buffer((re_string_t *)&aStack_1f0);\n            }\n          }\n          else {\n            build_wcs_buffer((re_string_t *)&aStack_1f0);\n          }\n        }\n        else {\n          if (1 < *(int *)(aVar55.idx + 0x5c)) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x4f58);\n            aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x697c);\n            do {\n              aVar45.idx = build_wcs_upper_buffer((re_string_t *)&aStack_1f0);\n              aVar64.sbcset = (re_bitset_ptr_t)&aStack_1f0;\n              if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset !=\n                  (anon_union_4_5_a39f51ca_for_opr *)0x0) break;\n              if ((aVar50.idx <= iStack_1d0) ||\n                 (aVar60.ctx_type = iStack_1cc << 1,\n                 iStack_1d4 + *(int *)(aVar55.idx + 0x5c) < iStack_1cc)) goto LAB_000263f8;\n              aVar45.sbcset = (re_bitset_ptr_t)(*(code *)aVar63)(&aStack_1f0);\n            } while ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n                     (anon_union_4_5_a39f51ca_for_opr *)0x0);\n            goto LAB_000261b4;\n          }\n          build_upper_buffer((re_string_t *)&aStack_1f0);\n        }\nLAB_000263f8:\n        aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n        (aVar57.mbcset)->ncoll_syms = 0;\n        aVar63.mbcset = (re_charset_t *)((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs;\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar63.idx + 0x80))->ctx_type = (re_context_type)aVar51\n        ;\n        aVar64.sbcset = (re_bitset_ptr_t)&aStack_1f0;\n        fetch_token((re_token_t *)&rStack_1fc,(re_string_t *)aVar64.mbcset,\n                    aVar51.ctx_type | 0x800000);\n        aVar60 = aVar57;\n        aVar10.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp((re_string_t *)aVar64.mbcset,aVar57.sbcset,(re_token_t *)&rStack_1fc,\n                           aVar51.ctx_type,0,&aStack_204.idx);\n        aVar52.idx = 2;\n        if ((anon_union_4_5_a39f51ca_for_opr *)aStack_204.sbcset ==\n            (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n          aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          aVar60.sbcset = (re_bitset_ptr_t)0x0;\n          aVar50.mbcset =\n               (re_charset_t *)\n               create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          aVar64.mbcset = aVar50.mbcset;\n          if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {\nLAB_000264d8:\n            aVar52.idx = 0x10;\n            aVar60.mbcset = aVar10.mbcset;\n            aVar59 = aVar50;\n            aVar64.sbcset =\n                 (re_bitset_ptr_t)\n                 create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)aVar10.mbcset,aVar50.sbcset,\n                             CONCAT);\n          }\n          if (((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) ||\n             (pcVar70 = *(code **)(pcVar68 + 0x183cc), (re_dfa_t *)aVar64.sbcset == (re_dfa_t *)0x0)\n             ) {\n            aStack_204.idx = 0xc;\n            goto LAB_0002671c;\n          }\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar55.idx + 0x34))->mbcset = (re_charset_t *)aVar64;\n          aVar50.mbcset = (re_charset_t *)*aVar57.sbcset;\n          iVar36 = ((re_node_set *)&(aVar50.mbcset)->range_starts)->alloc;\n          iVar6 = iVar36 << 2;\n          aVar51.sbcset = (re_bitset_ptr_t)(*pcVar70)(iVar6);\n          ((re_node_set *)&(aVar50.mbcset)->char_classes)->alloc = (Idx)aVar51;\n          aVar63.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183cc))(iVar6);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar50.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar63\n          ;\n          aVar10.idx = iVar36 * 0xc;\n          aVar46.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x183cc))(aVar10.sbcset);\n          ((anon_union_4_2_91654ee9_for___value *)&(aVar50.mbcset)->nmbchars)->__wch = (uint)aVar46;\n          iVar6 = (**(code **)(pcVar68 + 0x183cc))(aVar10.sbcset);\n          ((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc = iVar6;\n          aVar64.mbcset = aVar50.mbcset;\n          if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) {\n            aVar45.idx = 0xc;\n          }\n          else if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)0x0) {\n            aVar45.idx = 0xc;\n          }\n          else if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                   (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n            aVar45.idx = 0xc;\n          }\n          else if (iVar6 == 0) {\n            aVar45.idx = 0xc;\n          }\n          else {\n            pprVar16 = (re_sub_match_top_t **)\n                       (**(code **)(pcVar68 + 0x183cc))((int)(aVar57.mbcset)->ncoll_syms << 2);\n            *(re_sub_match_top_t ***)(aVar50.idx + 0x84) = pprVar16;\n            if (pprVar16 != (re_sub_match_top_t **)0x0) {\n              prVar17 = (re_sub_match_top_t *)0x0;\n              if ((re_node_set *)(aVar57.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n                do {\n                  (*(re_sub_match_top_t ***)(aVar50.idx + 0x84))[(int)prVar17] = prVar17;\n                  prVar17 = (re_sub_match_top_t *)((int)&prVar17->str_idx + 1);\n                } while (prVar17 < (re_sub_match_top_t *)(aVar57.mbcset)->ncoll_syms);\n              }\n              preorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar68 + 0x18300) + -0x75c0),aVar50.sbcset);\n              prVar17 = (re_sub_match_top_t *)(aVar57.mbcset)->ncoll_syms;\n              if (prVar17 == (re_sub_match_top_t *)0x0) {\nLAB_0002672c:\n                (**(code **)(pcVar68 + 0x18438))(*(re_sub_match_top_t ***)(aVar50.idx + 0x84));\n                *(re_sub_match_top_t ***)(aVar50.idx + 0x84) = (re_sub_match_top_t **)0x0;\n              }\n              else {\n                pprVar16 = *(re_sub_match_top_t ***)(aVar50.idx + 0x84);\n                if (*pprVar16 == (re_sub_match_top_t *)0x0) {\n                  prVar18 = (re_sub_match_top_t *)0x0;\n                  do {\n                    pprVar16 = pprVar16 + 1;\n                    prVar18 = (re_sub_match_top_t *)((int)&prVar18->str_idx + 1);\n                    if (prVar17 == prVar18) {\n                      if (prVar18 == prVar17) goto LAB_0002672c;\n                      break;\n                    }\n                  } while (*pprVar16 == prVar18);\n                }\n              }\n            }\n            aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x6304);\n            aVar45.idx = postorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,\n                                   aVar57.sbcset);\n            aVar59.mbcset = aVar50.mbcset;\n            if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n                (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n              aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x3280);\n              aVar45.idx = postorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,\n                                     aVar50.sbcset);\n              if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset ==\n                  (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                aVar10.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x7658);\n                preorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (*(int *)(pcVar68 + 0x18300) + -0x74f4),aVar50.sbcset);\n                aVar60.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x1cb0);\n                aVar46.idx = preorder(*(bin_tree_t **)(aVar50.idx + 0x34),\n                                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar60.sbcset,\n                                      aVar50.sbcset);\n                aVar45.idx = aVar46.idx;\n                if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                    (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                  aVar63.sbcset = (re_bitset_ptr_t)0x0;\n                  unaff_s8.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                  iVar6 = *(int *)(pcVar68 + 0x18300);\n                  aVar10.sbcset = (re_bitset_ptr_t)0x0;\nLAB_0002676c:\n                  if ((re_dfa_t *)(aVar50.mbcset)->range_ends != (re_dfa_t *)aVar10.sbcset) {\nLAB_00026778:\n                    aVar51.idx = aVar10.idx * 0xc;\n                    aVar52.idx = 1;\n                    if (*(int *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc +\n                                 aVar10.idx * 0xc + 4) == 0) {\n                      aVar60.mbcset = aVar50.mbcset;\n                      aVar59 = aVar10;\n                      aVar45.sbcset = (re_bitset_ptr_t)(*(code *)(iVar6 + -0x2cb8))(unaff_s8.sbcset)\n                      ;\n                      if ((anon_union_4_5_a39f51ca_for_opr *)aVar45.sbcset !=\n                          (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_000261b4;\n                      aVar51.sbcset =\n                           (re_bitset_ptr_t)\n                           (((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc + aVar10.idx * 0xc)\n                      ;\n                      if (((re_node_set *)&(aVar51.mbcset)->range_starts)->alloc == 0) {\n                        (**(code **)(pcVar68 + 0x18438))(rStack_1fc.elems);\n                        aVar63.idx = 1;\n                      }\n                    }\n                    aVar10.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs + 1);\n                    goto LAB_0002676c;\n                  }\n                  if ((re_dfa_t *)aVar63.sbcset != (re_dfa_t *)0x0) {\n                    aVar63.sbcset = (re_bitset_ptr_t)0x0;\n                    aVar10.sbcset = (re_bitset_ptr_t)0x0;\n                    goto LAB_00026778;\n                  }\n                  if ((((((re_node_set *)&(aVar57.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                      && ((re_node_set *)(aVar57.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                     ((char)*(byte *)(aVar50.idx + 0x58) < '\0')) {\n                    aVar10 = (anon_union_4_5_a39f51ca_for_opr)(aVar50.mbcset)->range_ends;\n                  }\n                  else {\n                    if (*(Idx *)(aVar50.idx + 0x4c) == 0) goto LAB_00026918;\n                    aVar10 = (anon_union_4_5_a39f51ca_for_opr)(aVar50.mbcset)->range_ends;\n                  }\n                  iVar6 = (**(code **)(pcVar68 + 0x183cc))(aVar10.idx * 0xc);\n                  ((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->alloc = iVar6;\n                  if (iVar6 == 0) {\n                    aVar45.idx = 0xc;\n                    goto LAB_000261b4;\n                  }\n                  if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {\n                    iVar6 = 0;\n                    uVar11 = 0;\n                    do {\n                      puVar19 = (undefined1 *)\n                                (((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->alloc + iVar6);\n                      *puVar19 = 0;\n                      puVar19[1] = 0;\n                      puVar19[2] = 0;\n                      puVar19[3] = 0;\n                      puVar19[4] = 0;\n                      puVar19[5] = 0;\n                      puVar19[6] = 0;\n                      puVar19[7] = 0;\n                      puVar19[8] = 0;\n                      puVar19[9] = 0;\n                      puVar19[10] = 0;\n                      puVar19[0xb] = 0;\n                      uVar11 = uVar11 + 1;\n                      iVar6 = iVar6 + 0xc;\n                    } while (uVar11 < (aVar50.mbcset)->range_ends);\n                    iVar6 = *(int *)(pcVar68 + 0x18300);\n                    if ((wint_t *)(aVar50.mbcset)->range_ends != (wint_t *)0x0) {\n                      unaff_s8.sbcset = (re_bitset_ptr_t)0x0;\n                      aStack_210.sbcset = (re_bitset_ptr_t)0x0;\n                      do {\n                        pbVar14 = (byte *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->alloc +\n                                          (int)unaff_s8.sbcset);\n                        aVar10 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(pbVar14 + 8))->sbcset;\n                        if (0 < *(int *)(pbVar14 + 4)) {\n                          aVar51.sbcset = (re_bitset_ptr_t)0x0;\n                          do {\n                            aVar60 = aStack_210;\n                            iVar36 = (*(code *)(iVar6 + -0x6878))\n                                               (((re_node_set *)&(aVar50.mbcset)->nequiv_classes)->\n                                                alloc + (int)*aVar10.sbcset * 0xc);\n                            aVar45.idx = 0xc;\n                            if (iVar36 == 0) goto LAB_000261b4;\n                            aVar51.sbcset =\n                                 (re_bitset_ptr_t)\n                                 ((int)&((re_string_t *)&(aVar51.mbcset)->mbchars)->raw_mbs + 1);\n                            aVar10.sbcset = (re_bitset_ptr_t)&(aVar10.mbcset)->range_starts;\n                          } while (aVar51.idx <\n                                   *(int *)((byte *)(((re_node_set *)&(aVar50.mbcset)->ncoll_syms)->\n                                                     alloc + (int)unaff_s8.sbcset) + 4));\n                        }\n                        aStack_210.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aStack_210.mbcset)->mbchars)->raw_mbs + 1);\n                        unaff_s8.sbcset = (re_bitset_ptr_t)&(unaff_s8.mbcset)->char_classes;\n                      } while (aStack_210.sbcset < (re_dfa_t *)(aVar50.mbcset)->range_ends);\n                    }\n                  }\nLAB_00026918:\n                  aStack_204.sbcset = (re_bitset_ptr_t)0x0;\n                  if ((((*(byte *)(aVar55.idx + 0x58) & 0x20) != 0) &&\n                      ((re_dfa_t *)aVar5.sbcset == (re_dfa_t *)0x0)) &&\n                     (((anon_union_4_2_91654ee9_for___value *)&(aVar57.mbcset)->nmbchars)->__wch ==\n                      0)) {\n                    aVar60 = aVar63;\n                    if ((aVar55.mbcset)->range_ends != (wchar_t *)0x0) {\n                      aVar59.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18220) + -0x3438);\n                      if (*(byte *)(*aVar55.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00026a88. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                        prVar7 = (re_dfastate_t *)\n                                 (*(code *)((int)aVar59.sbcset[*(byte *)(*aVar55.sbcset + 4)] +\n                                           (int)(pcVar68 + 0x201e8)))();\n                        return prVar7;\n                      }\n                      (**(code **)(pcVar68 + 0x18344))(0);\n                      if ((re_dfa_t *)aVar60.sbcset != (re_dfa_t *)0x0) {\n                        aVar59.idx = 7;\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        do {\n                          prVar20 = (re_token_t *)(aVar55.mbcset)->mbchars + aVar46.idx;\n                          if (prVar20->field_0x4 == '\x01') {\n                            if ((char)(prVar20->opr).c < '\0') {\n                              *(uint *)&prVar20->field_0x4 =\n                                   *(uint *)&prVar20->field_0x4 & 0xfffffbff;\n                            }\n                          }\n                          else if (prVar20->field_0x4 == '\x05') {\n                            prVar20->field_0x4 = 7;\n                          }\n                          aVar46.sbcset =\n                               (re_bitset_ptr_t)\n                               ((int)&((re_string_t *)&(aVar46.mbcset)->mbchars)->raw_mbs + 1);\n                        } while (aVar46.sbcset <\n                                 (anon_union_4_5_a39f51ca_for_opr *)(aVar55.mbcset)->range_ends);\n                      }\n                    }\n                    *(int *)(aVar55.idx + 0x5c) = 1;\n                    if (0 < *(Idx *)(aVar55.idx + 0x4c)) {\n                      aVar60.idx = 1;\n                    }\n                    *(byte *)(aVar55.idx + 0x58) =\n                         *(byte *)(aVar55.idx + 0x58) & 0x9f | (byte)((aVar60.ctx_type & 1) << 6);\n                  }\n                  iVar6 = (*(bin_tree_t **)(aVar55.idx + 0x34))->first->node_idx;\n                  *(int *)(aVar55.idx + 0x48) = iVar6;\n                  aVar60.sbcset =\n                       (re_bitset_ptr_t)((re_node_set *)(aVar55.mbcset)->ncoll_syms + iVar6);\n                  aVar64.idx = re_node_set_init_copy(&rStack_1fc,(re_node_set *)aVar60.mbcset);\n                  aVar10.idx = aVar64.idx;\n                  aStack_200.idx = aVar64.idx;\n                  if ((re_dfa_t *)aVar64.sbcset == (re_dfa_t *)0x0) {\n                    if ((0 < *(Idx *)(aVar55.idx + 0x4c)) &&\n                       (aVar50.sbcset = (re_bitset_ptr_t)0x0, 0 < rStack_1fc.nelem)) {\n                      aVar5.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                      aVar51.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x7800);\n                      aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x5750);\n                      aVar50.sbcset = (re_bitset_ptr_t)0x0;\n                      do {\n                        aVar52 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(rStack_1fc.elems + aVar50.idx)\n                                 )->idx;\n                        aVar59.sbcset =\n                             (re_bitset_ptr_t)((re_token_t *)(aVar55.mbcset)->mbchars + aVar52.idx);\n                        if (*(char *)&((re_node_set *)&(aVar59.mbcset)->range_starts)->alloc ==\n                            '\x04') {\n                          iVar6 = 0;\n                          piVar21 = rStack_1fc.elems;\n                          if (rStack_1fc.nelem < 1) {\nLAB_00026bb4:\n                            if (iVar6 != rStack_1fc.nelem) {\n                              aVar46 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((re_node_set *)(aVar55.mbcset)->nmbchars)[aVar52.idx].elems)\n                                       ->idx;\n                              iVar6 = (*(code *)aVar51)(aVar5.sbcset,aVar46.sbcset);\n                              if (iVar6 == 0) {\n                                aVar60.sbcset =\n                                     (re_bitset_ptr_t)\n                                     ((re_node_set *)(aVar55.mbcset)->ncoll_syms + aVar46.idx);\n                                aVar50.sbcset = (re_bitset_ptr_t)(*(code *)aVar63)(aVar5.sbcset);\n                                aVar10.sbcset = aVar50.sbcset;\n                                if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              prVar20 = (re_token_t *)(aVar55.mbcset)->mbchars + *piVar21;\n                              if ((prVar20->field_0x4 == '\t') &&\n                                 ((prVar20->opr).sbcset == (re_bitset_ptr_t)*aVar59.sbcset))\n                              goto LAB_00026bb4;\n                              iVar6 = iVar6 + 1;\n                              piVar21 = piVar21 + 1;\n                            } while (rStack_1fc.nelem != iVar6);\n                          }\n                        }\n                        aVar50.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar50.mbcset)->mbchars)->raw_mbs + 1);\n                      } while (aVar50.idx < rStack_1fc.nelem);\n                    }\n                    aVar52.sbcset = (re_bitset_ptr_t)0x0;\n                    aVar59.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                    aVar60 = aVar55;\n                    prVar7 = re_acquire_state_context\n                                       (&aStack_200.idx,(re_dfa_t *)aVar55.mbcset,\n                                        (re_node_set *)aVar59.mbcset,0);\n                    (aVar55.mbcset)->nchar_classes = (Idx)prVar7;\n                    aVar10 = aStack_200;\n                    if (prVar7 != (re_dfastate_t *)0x0) {\n                      aVar52.idx = 1;\n                      if ((prVar7->field_0x34 & 1) == 0) {\n                        *(re_dfastate_t **)(aVar55.idx + 0x30) = prVar7;\n                        *(re_dfastate_t **)(aVar55.idx + 0x2c) = prVar7;\n                        *(re_dfastate_t **)(aVar55.idx + 0x28) = prVar7;\n                      }\n                      else {\n                        aVar5.sbcset = (re_bitset_ptr_t)&rStack_1fc;\n                        aVar51.sbcset = (re_bitset_ptr_t)&aStack_200;\n                        aVar50.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x18300) + -0x2868);\n                        prVar7 = re_acquire_state_context\n                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset\n                                            ,(re_node_set *)aVar5.mbcset,1);\n                        *(re_dfastate_t **)(aVar55.idx + 0x28) = prVar7;\n                        prVar7 = re_acquire_state_context\n                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset\n                                            ,(re_node_set *)aVar5.mbcset,2);\n                        *(re_dfastate_t **)(aVar55.idx + 0x2c) = prVar7;\n                        aVar52.idx = 6;\n                        aVar60 = aVar55;\n                        aVar59.sbcset = aVar5.sbcset;\n                        prVar7 = re_acquire_state_context\n                                           ((reg_errcode_t *)aVar51.sbcset,(re_dfa_t *)aVar55.mbcset\n                                            ,(re_node_set *)aVar5.mbcset,6);\n                        *(re_dfastate_t **)(aVar55.idx + 0x30) = prVar7;\n                        aVar10 = aStack_200;\n                        if (((*(re_dfastate_t **)(aVar55.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                            (*(re_dfastate_t **)(aVar55.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                           (prVar7 == (re_dfastate_t *)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcVar68 + 0x18438))(rStack_1fc.elems);\n                      aVar10.idx = aVar64.idx;\n                    }\n                  }\nLAB_00026ce0:\n                  aStack_204 = aVar10;\n                  free_workarea_compile((regex_t *)aVar57.mbcset);\n                  re_string_destruct((re_string_t *)&aStack_1f0);\n                  aVar64 = aStack_204;\n                  if ((anon_union_4_5_a39f51ca_for_opr *)aStack_204.sbcset !=\n                      (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                    free_dfa_content((re_dfa_t *)aVar55.mbcset);\n                    *aVar57.sbcset = 0;\n                    ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;\n                    aVar64 = aStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          if ((re_dfa_t *)aVar10.sbcset != (re_dfa_t *)0x0) {\n            aVar50.mbcset =\n                 (re_charset_t *)\n                 create_tree((re_dfa_t *)aVar63.mbcset,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE\n                            );\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          *(bin_tree_t **)(aVar55.idx + 0x34) = (bin_tree_t *)0x0;\n          aVar45 = aStack_204;\n        }\nLAB_000261b4:\n        aStack_204 = aVar45;\n        aVar50 = aVar64;\n        free_workarea_compile((regex_t *)aVar57.mbcset);\n        re_string_destruct((re_string_t *)&aStack_1f0);\n        free_dfa_content((re_dfa_t *)aVar55.mbcset);\n        *aVar57.sbcset = 0;\n        ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;\n        aVar64 = aStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    aStack_204.idx = 0xc;\n    free_dfa_content((re_dfa_t *)aVar55.mbcset);\n    *aVar57.sbcset = 0;\n    ((re_node_set *)&(aVar57.mbcset)->range_starts)->alloc = 0;\n    aVar64 = aStack_204;\n  }\nLAB_00026d24:\n  if ((re_dfa_t *)aStack_19c.sbcset == (re_dfa_t *)**(undefined4 **)(pcVar68 + 0x1842c)) {\n    return (re_dfastate_t *)aVar64.sbcset;\n  }\n  pcVar68 = *(code **)(pcVar68 + 0x1840c);\n  pcVar70 = build_trtable;\n  aVar64 = aStack_19c;\n  (*pcVar68)();\n  aStack_300.sbcset = (re_bitset_ptr_t)(pcVar68 + 0x1f234);\n  aStack_25c = (anon_union_4_5_a39f51ca_for_opr)\n               (*(anon_union_4_5_a39f51ca_for_opr **)(pcVar68 + 0x17478))->sbcset;\n  aVar45 = aVar60;\n  aStack_258 = aVar55;\n  aStack_254 = aVar57;\n  aStack_250 = aVar50;\n  aStack_24c = aVar10;\n  aStack_248 = aVar51;\n  aStack_244 = aVar5;\n  aStack_240 = aVar63;\n  aStack_23c = aVar46;\n  aStack_238 = unaff_s8;\n  pcStack_234 = pcVar70;\n  aStack_2ec.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar68 + 0x17418))(0x2c00);\n  if ((re_dfa_t *)aStack_2ec.sbcset == (re_dfa_t *)0x0) {\n    prVar7 = (re_dfastate_t *)0x0;\n  }\n  else {\n    ppprStack_2e0 = (re_dfastate_t ***)(aStack_2ec.idx + 0xc00);\n    *(re_dfastate_t **)(aVar60.idx + 0x2c) = (re_dfastate_t *)0x0;\n    *(re_dfastate_t **)(aVar60.idx + 0x30) = (re_dfastate_t *)0x0;\n    aStack_2e4.sbcset = aStack_2ec.sbcset;\n    bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n    aVar63 = aStack_300;\n    if ((int)(aVar60.mbcset)->range_ends < 1) {\n      aVar50.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else {\n      aVar50.sbcset = (re_bitset_ptr_t)0x0;\n      aStack_2f4.sbcset = (re_bitset_ptr_t)0x0;\n      pprStack_2d8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1886;\n      pprStack_2e8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1867;\n      pprStack_2dc = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x14a1;\n      do {\n        aStack_2f0.idx = (Idx)(aStack_2f4.idx * 4);\n        aVar10.sbcset =\n             (re_bitset_ptr_t)\n             ((int)((re_string_t *)&(aVar64.mbcset)->mbchars)->raw_mbs +\n             *(int *)(((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc + aStack_2f4.idx * 4) *\n             2 * 4);\n        aVar46.idx._0_3_ = 0;\n        aVar46.idx._3_1_ = *(byte *)&((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc;\n        aVar55.idx = (((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc << 8) >> 0x16;\n        if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n            (anon_union_4_5_a39f51ca_for_opr *)0x1) {\n          bitset_set((bitset_word_t *)&aaStack_2bc[0].c,(uint)*(byte *)aVar10.sbcset);\n          aVar63 = aStack_300;\nLAB_00026f88:\n          if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) goto LAB_00027078;\n          if ((aVar55.ctx_type & LINE_LAST) != 0) {\n            aVar57.sbcset = (re_bitset_ptr_t)aaStack_2bc;\n            aVar51._3_1_ = bitset_contain(aVar57.sbcset,10);\n            aVar51.idx._0_3_ = extraout_var_01;\n            bitset_empty(aVar57.sbcset);\n            aVar63 = aStack_300;\n            if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) goto LAB_00027478;\n            bitset_set((bitset_word_t *)&aaStack_2bc[0].c,10);\n            aVar63 = aStack_300;\n          }\n          if ((aVar55.ctx_type & BUF_LAST) == 0) {\n            if ((aVar55.ctx_type & 4) == 0) {\nLAB_0002700c:\n              aVar55.ctx_type = aVar55.ctx_type & 8;\n              if ((re_dfa_t *)aVar55.sbcset == (re_dfa_t *)0x0) {\nLAB_00027078:\n                if (aVar50.idx < 1) {\n                  aVar57.sbcset = (re_bitset_ptr_t)0x0;\n                }\n                else {\n                  aVar55.sbcset = (re_bitset_ptr_t)(aStack_2ec.idx + 0xc00);\n                  aVar57.sbcset = (re_bitset_ptr_t)0x0;\n                  aStack_2f8 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar63.idx + -0x7ee8);\n                  aVar5 = aStack_2ec;\n                  do {\n                    if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset !=\n                         (anon_union_4_5_a39f51ca_for_opr *)0x1) ||\n                       (_Var38 = bitset_contain(aVar55.sbcset,(uint)*(byte *)aVar10.sbcset),\n                       aVar63 = aStack_300, CONCAT31(extraout_var_02,_Var38) != 0)) {\n                      paVar48 = aaStack_2bc;\n                      rVar43 = 0;\n                      paVar42 = paVar48;\n                      aVar59 = aVar55;\n                      aVar52 = (anon_union_4_5_a39f51ca_for_opr)&aStack_29c;\n                      do {\n                        rVar22 = paVar42->ctx_type;\n                        pIVar54 = (Idx *)*aVar59.sbcset;\n                        *aVar52.sbcset = rVar22 & (uint)pIVar54;\n                        rVar43 = rVar43 | rVar22 & (uint)pIVar54;\n                        paVar42 = paVar42 + 1;\n                        aVar59.sbcset = (re_bitset_ptr_t)&(aVar59.mbcset)->range_starts;\n                        aVar52.sbcset = aVar52.sbcset + 4;\n                      } while (paVar42 != &aStack_29c);\n                      if (rVar43 != 0) {\n                        aVar59.sbcset = (re_bitset_ptr_t)aaStack_27c;\n                        aVar51.sbcset = (re_bitset_ptr_t)0x0;\n                        rVar43 = 0;\n                        aVar63 = aVar55;\n                        do {\n                          aVar52.ctx_type = paVar48->ctx_type;\n                          pIVar54 = (Idx *)*aVar63.sbcset;\n                          rVar22 = ~aVar52.ctx_type & (uint)pIVar54;\n                          *aVar59.sbcset = rVar22;\n                          rVar43 = rVar43 | rVar22;\n                          rVar22 = ~(uint)pIVar54 & aVar52.ctx_type;\n                          paVar48->ctx_type = rVar22;\n                          aVar51.ctx_type = aVar51.ctx_type | rVar22;\n                          paVar48 = paVar48 + 1;\n                          aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;\n                          aVar59.sbcset = aVar59.sbcset + 4;\n                        } while (aVar63.sbcset != (re_bitset_ptr_t)&(aVar55.mbcset)->nranges);\n                        if (rVar43 != 0) {\n                          paVar42 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (ppprStack_2e0 + aVar50.idx * 8);\n                          *paVar42 = aaStack_27c[0];\n                          paVar42[1] = aaStack_27c[1];\n                          paVar42[2] = aaStack_27c[2];\n                          paVar42[3] = aaStack_27c[3];\n                          paVar42[4] = aStack_26c;\n                          paVar42[5] = aStack_268;\n                          paVar42[6] = aStack_264;\n                          paVar42[7] = aStack_260;\n                          *aVar55.sbcset = (bitset_word_t)aStack_29c;\n                          (aVar55.mbcset)->range_starts = pwStack_298;\n                          (aVar55.mbcset)->range_ends = pIStack_294;\n                          ((re_node_set *)&(aVar55.mbcset)->char_classes)->alloc = IStack_290;\n                          *(Idx **)(aVar55.idx + 0x10) = pIStack_28c;\n                          (aVar55.mbcset)->nmbchars = (Idx)prStack_288;\n                          (aVar55.mbcset)->ncoll_syms = (Idx)prStack_284;\n                          (aVar55.mbcset)->nequiv_classes = (Idx)prStack_280;\n                          iVar6 = (*(code *)pprStack_2dc)\n                                            (aStack_2e4.sbcset + aVar50.idx * 3,aVar5.sbcset);\n                          if (iVar6 != 0) goto LAB_000275d4;\n                          aVar50.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n                        }\n                        iVar6 = (*(code *)pprStack_2e8)\n                                          (aVar5.sbcset,\n                                           *(undefined4 *)\n                                            (((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc\n                                            + (int)aStack_2f0.sbcset));\n                        if (iVar6 == 0) goto LAB_000275d4;\n                        aVar63 = aStack_300;\n                        if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) break;\n                      }\n                    }\n                    aVar57.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(aVar57.mbcset)->mbchars)->raw_mbs + 1);\n                    aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->nranges;\n                    aVar5.sbcset = (re_bitset_ptr_t)&(aVar5.mbcset)->char_classes;\n                  } while (aVar57.idx < aVar50.idx);\n                }\n                if (aVar50.sbcset == aVar57.sbcset) {\n                  paVar42 = (anon_union_4_5_a39f51ca_for_opr *)(ppprStack_2e0 + aVar50.idx * 8);\n                  paVar42->ctx_type = (re_context_type)aaStack_2bc[0];\n                  paVar42[1] = aaStack_2bc[1];\n                  paVar42[2] = aaStack_2bc[2];\n                  paVar42[3] = aaStack_2bc[3];\n                  paVar42[4] = aaStack_2bc[4];\n                  paVar42[5] = aaStack_2bc[5];\n                  paVar42[6] = aaStack_2bc[6];\n                  paVar42[7] = aaStack_2bc[7];\n                  iVar6 = (*(code *)pprStack_2d8)\n                                    (aStack_2e4.sbcset + aVar50.idx * 3,\n                                     *(undefined4 *)\n                                      (((re_node_set *)&(aVar60.mbcset)->char_classes)->alloc +\n                                      (int)aStack_2f0.sbcset));\n                  if (iVar6 != 0) {\nLAB_000275d4:\n                    if (aVar50.idx < 1) {\n                      aVar50.idx = -1;\n                      aVar63 = aStack_300;\n                    }\n                    else {\n                      aVar57.sbcset = aStack_2ec.sbcset + aVar50.idx * 3;\n                      aVar55 = aStack_2ec;\n                      do {\n                        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))\n                                  ((aVar55.mbcset)->range_ends);\n                        aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;\n                        aVar50.idx = -1;\n                        aVar63 = aStack_300;\n                      } while (aVar55.sbcset != aVar57.sbcset);\n                    }\n                    goto LAB_00027610;\n                  }\n                  bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n                  aVar50.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n                  aVar63 = aStack_300;\n                }\n              }\n              else if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                        (anon_union_4_5_a39f51ca_for_opr *)0x1) &&\n                      ((((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc & 0x200U) != 0)) {\n                bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n                aVar63 = aStack_300;\n              }\n              else {\n                paVar42 = aaStack_2bc;\n                if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {\n                  pprVar49 = (re_node_set **)(aVar64.idx + 0x60);\n                  aVar52.sbcset = (re_bitset_ptr_t)&aStack_29c;\n                  rVar43 = 0;\n                  do {\n                    prVar23 = *pprVar49;\n                    aVar59.ctx_type = paVar42->ctx_type;\n                    paVar42->ctx_type = ~(uint)prVar23 & aVar59.ctx_type;\n                    rVar43 = rVar43 | ~(uint)prVar23 & aVar59.ctx_type;\n                    paVar42 = paVar42 + 1;\n                    pprVar49 = pprVar49 + 1;\n                  } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)aVar52.sbcset);\n                }\n                else {\n                  aVar59.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);\n                  puVar47 = (uint *)((re_node_set *)(aVar64.idx + 0x3c))->alloc;\n                  rVar43 = 0;\n                  do {\n                    aVar52.ctx_type = paVar42->ctx_type;\n                    rVar22 = ~((uint)*aVar59.sbcset & *puVar47) & aVar52.ctx_type;\n                    paVar42->ctx_type = rVar22;\n                    rVar43 = rVar43 | rVar22;\n                    paVar42 = paVar42 + 1;\n                    aVar59.sbcset = aVar59.sbcset + 4;\n                    puVar47 = puVar47 + 1;\n                  } while (paVar42 != &aStack_29c);\n                }\n                if (rVar43 != 0) goto LAB_00027078;\n              }\n            }\n            else if (((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n                      (anon_union_4_5_a39f51ca_for_opr *)0x1) &&\n                    ((((re_node_set *)&(aVar10.mbcset)->range_starts)->alloc & 0x200U) == 0)) {\n              bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n              aVar63 = aStack_300;\n            }\n            else {\n              paVar42 = aaStack_2bc;\n              if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {\n                paVar42 = aaStack_2bc;\n                paVar48 = (anon_union_4_5_a39f51ca_for_opr *)(aVar64.idx + 0x60);\n                aVar52.sbcset = (re_bitset_ptr_t)&aStack_29c;\n                rVar43 = 0;\n                do {\n                  rVar22 = paVar42->ctx_type;\n                  aVar59 = (anon_union_4_5_a39f51ca_for_opr)paVar48->ctx_type;\n                  paVar42->ctx_type = rVar22 & aVar59.ctx_type;\n                  rVar43 = rVar43 | rVar22 & aVar59.ctx_type;\n                  paVar42 = paVar42 + 1;\n                  paVar48 = paVar48 + 1;\n                } while (paVar42 != (anon_union_4_5_a39f51ca_for_opr *)aVar52.sbcset);\n              }\n              else {\n                aVar59.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);\n                puVar47 = (uint *)((re_node_set *)(aVar64.idx + 0x3c))->alloc;\n                rVar43 = 0;\n                do {\n                  aVar52.ctx_type = paVar42->ctx_type;\n                  rVar22 = (~*puVar47 | (uint)*aVar59.sbcset) & aVar52.ctx_type;\n                  paVar42->ctx_type = rVar22;\n                  rVar43 = rVar43 | rVar22;\n                  paVar42 = paVar42 + 1;\n                  aVar59.sbcset = aVar59.sbcset + 4;\n                  puVar47 = puVar47 + 1;\n                } while (paVar42 != &aStack_29c);\n              }\n              if (rVar43 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            bitset_empty((bitset_word_t *)&aaStack_2bc[0].c);\n            aVar63 = aStack_300;\n          }\n        }\n        else {\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)0x3) {\n            bitset_merge((bitset_word_t *)&aaStack_2bc[0].c,\n                         (bitset_word_t *)((re_string_t *)&(aVar10.mbcset)->mbchars)->raw_mbs);\n            aVar63 = aStack_300;\n            goto LAB_00026f88;\n          }\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)&DAT_00000005) {\n            if ((int)*(Idx **)(aVar64.idx + 0x5c) < 2) {\n              aaStack_2bc[0].idx = -1;\n              aaStack_2bc[1].idx = -1;\n              aaStack_2bc[2].idx = -1;\n              aaStack_2bc[3].idx = -1;\n              aaStack_2bc[4].idx = -1;\n              aaStack_2bc[5].idx = -1;\n              aaStack_2bc[6].idx = -1;\n              aaStack_2bc[7].idx = -1;\n            }\n            else {\n              bitset_merge((bitset_word_t *)&aaStack_2bc[0].c,\n                           (bitset_word_t *)((re_node_set *)(aVar64.idx + 0x3c))->alloc);\n              aVar63 = aStack_300;\n            }\n            uVar11 = ((re_node_set *)(aVar64.idx + 0x80))->alloc;\n            if ((uVar11 & 0x40) == 0) {\n              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffbff);\n            }\n            if ((uVar11 & 0x80) != 0) {\n              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if ((anon_union_4_5_a39f51ca_for_opr *)aVar46.sbcset ==\n              (anon_union_4_5_a39f51ca_for_opr *)0x7) {\n            aaStack_2bc[0].idx = -1;\n            aaStack_2bc[1].idx = -1;\n            aaStack_2bc[2].idx = -1;\n            aaStack_2bc[3].idx = -1;\n            uVar11 = ((re_node_set *)(aVar64.idx + 0x80))->alloc;\n            if ((uVar11 & 0x40) == 0) {\n              aaStack_2bc[0].idx = -0x401;\n            }\n            if ((uVar11 & 0x80) != 0) {\n              aaStack_2bc[0].ctx_type = (re_context_type)(aaStack_2bc[0].ctx_type & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        aStack_2f4.sbcset =\n             (re_bitset_ptr_t)((int)&((re_string_t *)&(aStack_2f4.mbcset)->mbchars)->raw_mbs + 1);\n      } while (aStack_2f4.idx < (int)(aVar60.mbcset)->range_ends);\n      aVar45.sbcset = (re_bitset_ptr_t)(aVar50.idx + 1);\n      if (0 < aVar50.idx) {\n        aStack_2f8.idx = re_node_set_alloc(&rStack_2c8,aVar45.idx);\n        aStack_2cc.idx = aStack_2f8.idx;\n        if (((re_dfa_t *)aStack_2f8.sbcset == (re_dfa_t *)0x0) &&\n           (aVar50.sbcset < (re_dfa_t *)0x155551ab)) {\n          iStack_2d4 = aVar50.idx * 0xc;\n          aStack_2f0.sbcset =\n               (re_bitset_ptr_t)\n               (*(code *)((re_node_set *)(aStack_300.idx + -0x7e1c))->alloc)(iStack_2d4);\n          if ((re_dfa_t *)aStack_2f0.sbcset != (re_dfa_t *)0x0) {\n            aStack_2e4.sbcset = aStack_2f0.sbcset + aVar50.idx;\n            ppprStack_2e0 = (re_dfastate_t ***)(aStack_2e4.sbcset + aVar50.idx);\n            bitset_empty((bitset_word_t *)&aaStack_27c[0].c);\n            aVar5.sbcset = (re_bitset_ptr_t)&(aStack_2ec.mbcset)->range_starts;\n            aStack_2f4.sbcset = aStack_2f8.sbcset;\n            pprStack_2d8 = (re_dfastate_t **)0x0;\n            aVar51.sbcset = (re_bitset_ptr_t)&rStack_2c8;\n            aVar46.sbcset =\n                 (re_bitset_ptr_t)\n                 ((re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x15d4);\n            pprStack_2e8 = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count +\n                           -0xa1a;\n            pprStack_2dc = (re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count +\n                           -0x1e7c;\n            do {\n              rStack_2c8.nelem = 0;\n              if (0 < (int)*aVar5.sbcset) {\n                aVar10.idx = -1;\n                aVar63 = aStack_2f8;\n                do {\n                  iVar6 = *(int *)(((re_node_set *)&(aVar64.mbcset)->char_classes)->alloc +\n                                  *(int *)(((re_node_set *)&(aVar5.mbcset)->range_starts)->alloc +\n                                          aVar63.idx * 4) * 4);\n                  if (iVar6 != -1) {\n                    aVar45.sbcset =\n                         (re_bitset_ptr_t)\n                         (((re_node_set *)&(aVar64.mbcset)->ncoll_syms)->alloc + iVar6 * 0xc);\n                    aStack_2cc.sbcset = (re_bitset_ptr_t)(*(code *)aVar46)(aVar51.sbcset);\n                    if ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0) goto LAB_00027794;\n                  }\n                  aVar63.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 1);\n                  aVar52.sbcset = (re_bitset_ptr_t)0x0;\n                } while (aVar63.idx < (int)*aVar5.sbcset);\n              }\n              aVar52.sbcset = (re_bitset_ptr_t)0x0;\n              aVar45 = aVar64;\n              aVar59.sbcset = aVar51.sbcset;\n              pprVar24 = (re_dfastate_t **)(*(code *)pprStack_2e8)(&aStack_2cc);\n              aVar63 = aStack_2f4;\n              pIVar54 = (Idx *)(aStack_2f0.sbcset + aStack_2f4.idx);\n              *pIVar54 = (Idx)pprVar24;\n              if ((pprVar24 == (re_dfastate_t **)0x0) &&\n                 ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0)) {\n                pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);\n                goto LAB_00027798;\n              }\n              if (((uint)pprVar24[0xd] & 0x1000000) == 0) {\n                aStack_2e4.sbcset[aStack_2f4.idx] = (bitset_word_t)pprVar24;\n                ppprStack_2e0[aStack_2f4.idx] = pprVar24;\n              }\n              else {\n                aVar52.idx = 1;\n                aVar45 = aVar64;\n                aVar59.sbcset = aVar51.sbcset;\n                iVar6 = (*(code *)pprStack_2e8)(&aStack_2cc);\n                aStack_2e4.sbcset[aVar63.idx] = iVar6;\n                if ((iVar6 == 0) && ((re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0)) {\n                  pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);\n                  goto LAB_00027798;\n                }\n                if ((iVar6 != *pIVar54) && (1 < (int)*(Idx **)(aVar64.idx + 0x5c))) {\n                  pprStack_2d8 = (re_dfastate_t **)0x1;\n                }\n                aVar52.idx = 2;\n                aVar45 = aVar64;\n                aVar59.sbcset = aVar51.sbcset;\n                pprVar24 = (re_dfastate_t **)(*(code *)pprStack_2e8)(&aStack_2cc);\n                ppprStack_2e0[aVar63.idx] = pprVar24;\n                if ((pprVar24 == (re_dfastate_t **)0x0) &&\n                   (aVar10 = aVar63, (re_dfa_t *)aStack_2cc.sbcset != (re_dfa_t *)0x0))\n                goto LAB_00027794;\n              }\n              aVar55 = aStack_2ec;\n              aVar10.idx = aVar63.idx * 0x20;\n              (*(code *)pprStack_2dc)\n                        (aaStack_27c,(re_dfastate_t ***)(aStack_2ec.idx + 0xc00) + aVar63.idx * 8);\n              aStack_2f4.sbcset = (re_bitset_ptr_t)(aStack_2f4.idx + 1);\n              aVar5.sbcset = (re_bitset_ptr_t)&(aVar5.mbcset)->char_classes;\n            } while (aStack_2f4.sbcset != aVar50.sbcset);\n            aVar45.idx = 0x100;\n            if (pprStack_2d8 == (re_dfastate_t **)0x0) {\n              aVar51.sbcset =\n                   (re_bitset_ptr_t)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);\n              ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x2c))->sbcset =\n                   (re_bitset_ptr_t)aVar51;\n              if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) {\nLAB_00027794:\n                pbVar69 = *(bin_tree_storage_t **)(aStack_300.idx + -0x7db0);\n                aVar63 = aVar10;\nLAB_00027798:\n                (*(code *)pbVar69)(aStack_2f0.sbcset);\n                aVar10 = aVar63;\n                goto LAB_000277a4;\n              }\n              paVar42 = aaStack_27c;\n              aVar64.sbcset = (re_bitset_ptr_t)(aVar64.idx + 0x60);\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              aVar63 = aVar55;\n              do {\n                rVar43 = paVar42->ctx_type;\n                aVar52 = aVar45;\n                if (rVar43 != 0) {\n                  uVar11 = 1;\n                  do {\n                    if ((rVar43 & 1) != 0) {\n                      aVar59 = aStack_2f8;\n                      aVar57 = aVar63;\n                      if ((uVar11 & (uint)*(re_dfastate_t ***)(aVar63.idx + 0xc00)) == 0) {\n                        do {\n                          aVar59.sbcset =\n                               (re_bitset_ptr_t)\n                               ((int)&((re_string_t *)&(aVar59.mbcset)->mbchars)->raw_mbs + 1);\n                          ppIVar33 = (Idx **)(aVar57.idx + 0xc20);\n                          aVar57 = (anon_union_4_5_a39f51ca_for_opr)&(aVar57.mbcset)->nranges;\n                        } while ((uVar11 & (uint)*ppIVar33) == 0);\n                      }\n                      else {\n                        aVar59.sbcset = (re_bitset_ptr_t)0x0;\n                      }\n                      if ((uVar11 & (uint)*aVar64.sbcset) == 0) {\n                        aVar51.sbcset[aVar52.idx] = aStack_2f0.sbcset[aVar59.idx];\n                        aVar59 = aStack_2f0;\n                      }\n                      else {\n                        aVar51.sbcset[aVar52.idx] = aStack_2e4.sbcset[aVar59.idx];\n                        aVar59 = aStack_2e4;\n                      }\n                    }\n                    uVar11 = uVar11 << 1;\n                    rVar43 = rVar43 >> 1;\n                    aVar52.sbcset =\n                         (re_bitset_ptr_t)\n                         ((int)&((re_string_t *)&(aVar52.mbcset)->mbchars)->raw_mbs + 1);\n                  } while (rVar43 != 0);\n                }\n                paVar42 = paVar42 + 1;\n                aVar45.sbcset = (re_bitset_ptr_t)&(aVar45.mbcset)->nranges;\n                aVar64.sbcset = aVar64.sbcset + 4;\n                aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;\n              } while ((re_state_table_entry **)aVar45.sbcset != (re_state_table_entry **)0x100);\n            }\n            else {\n              aVar45.idx = 0x200;\n              aVar51.sbcset =\n                   (re_bitset_ptr_t)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);\n              ((anon_union_4_5_a39f51ca_for_opr *)(aVar60.idx + 0x30))->mbcset =\n                   (re_charset_t *)aVar51;\n              if ((re_dfa_t *)aVar51.sbcset == (re_dfa_t *)0x0) goto LAB_00027794;\n              paVar42 = aaStack_27c;\n              aVar63 = aVar55;\n              aVar45.sbcset = aVar51.sbcset;\n              do {\n                rVar43 = paVar42->ctx_type;\n                if (rVar43 != 0) {\n                  uVar11 = 1;\n                  aVar52 = aVar45;\n                  do {\n                    if ((rVar43 & 1) != 0) {\n                      aVar57.sbcset = (re_bitset_ptr_t)0x0;\n                      pprVar24 = *(re_dfastate_t ***)(aVar63.idx + 0xc00);\n                      aVar4 = aVar63;\n                      aVar3 = aStack_2f8;\n                      while ((uVar11 & (uint)pprVar24) == 0) {\n                        aVar57.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar3.mbcset)->mbchars)->raw_mbs + 1);\n                        aVar59.sbcset = (re_bitset_ptr_t)&(aVar4.mbcset)->nranges;\n                        pprVar24 = *(re_dfastate_t ***)(aVar4.idx + 0xc20);\n                        aVar4 = aVar59;\n                        aVar3.sbcset = aVar57.sbcset;\n                      }\n                      *aVar52.sbcset = aStack_2f0.sbcset[aVar57.idx];\n                      ((re_node_set *)(aVar52.idx + 0x400))->alloc = aStack_2e4.sbcset[aVar57.idx];\n                    }\n                    uVar11 = uVar11 << 1;\n                    rVar43 = rVar43 >> 1;\n                    aVar52.sbcset = (re_bitset_ptr_t)&(aVar52.mbcset)->range_starts;\n                  } while (rVar43 != 0);\n                }\n                paVar42 = paVar42 + 1;\n                aVar45.sbcset = (re_bitset_ptr_t)(aVar45.idx + 0x80);\n                aVar63.sbcset = (re_bitset_ptr_t)&(aVar63.mbcset)->range_starts;\n              } while ((re_dfa_t *)(aVar51.idx + 0x400) != (re_dfa_t *)aVar45.sbcset);\n            }\n            aVar45.idx = 10;\n            _Var38 = bitset_contain((bitset_word_t *)&aaStack_27c[0].c,10);\n            if (CONCAT31(extraout_var_03,_Var38) != 0) {\n              set = (re_dfastate_t ***)(aStack_2ec.idx + 0xc00);\n              aVar10.sbcset =\n                   (re_bitset_ptr_t)\n                   ((re_dfastate_t **)((mbstate_t *)(aStack_300.idx + -0x7ee8))->__count + -0x1e9a);\n              do {\n                aVar5 = aStack_2f8;\n                aVar45.idx = 10;\n                _Var38 = bitset_contain((bitset_word_t *)set,10);\n                if (CONCAT31(extraout_var_04,_Var38) != 0) {\n                  prVar7 = (re_dfastate_t *)ppprStack_2e0[aVar5.idx];\n                  *(re_dfastate_t **)(aVar51.idx + 0x28) = prVar7;\n                  if (pprStack_2d8 != (re_dfastate_t **)0x0) {\n                    ((re_dfastate_t *)(aVar51.idx + 0x428))->hash = (re_hashval_t)prVar7;\n                  }\n                  break;\n                }\n                aStack_2f8.sbcset =\n                     (re_bitset_ptr_t)\n                     ((int)&((re_string_t *)&(aStack_2f8.mbcset)->mbchars)->raw_mbs + 1);\n                set = set + 8;\n              } while (aStack_2f8.sbcset != aVar50.sbcset);\n            }\n            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2f0.sbcset);\n            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(rStack_2c8.elems);\n            aVar57.sbcset = iStack_2d4 + aVar55.sbcset;\n            do {\n              (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))\n                        ((aVar55.mbcset)->range_ends);\n              aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;\n            } while (aVar57.sbcset != aVar55.sbcset);\n            (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2ec.sbcset);\n            prVar7 = (re_dfastate_t *)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(rStack_2c8.elems);\n        aVar57.sbcset = aStack_2ec.sbcset + aVar50.idx * 3;\n        aVar55 = aStack_2ec;\n        do {\n          (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))((aVar55.mbcset)->range_ends)\n          ;\n          aVar55.sbcset = (re_bitset_ptr_t)&(aVar55.mbcset)->char_classes;\n        } while (aVar55.sbcset != aVar57.sbcset);\n        (*(code *)*(bin_tree_storage_t **)(aStack_300.idx + -0x7db0))(aStack_2ec.sbcset);\n        prVar7 = (re_dfastate_t *)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)*(bin_tree_storage_t **)(aVar63.idx + -0x7db0))(aStack_2ec.sbcset);\n    aVar45.idx = 0x100;\n    if ((re_dfa_t *)aVar50.sbcset == (re_dfa_t *)0x0) {\n      prVar7 = (re_dfastate_t *)(*(code *)*(re_node_set **)(aStack_300.idx + -0x7eb8))(4);\n      *(re_dfastate_t **)(aVar60.idx + 0x2c) = prVar7;\n      prVar7 = (re_dfastate_t *)(uint)(prVar7 != (re_dfastate_t *)0x0);\n    }\n    else {\n      prVar7 = (re_dfastate_t *)0x0;\n    }\n  }\nLAB_00027804:\n  if ((re_dfa_t *)aStack_25c.sbcset ==\n      (re_dfa_t *)(*(re_dfastate_t **)(aStack_300.idx + -0x7dbc))->hash) {\n    return prVar7;\n  }\n  pcVar68 = *(code **)(aStack_300.idx + -0x7ddc);\n  pcVar70 = re_search_internal;\n  preg = aStack_25c;\n  (*pcVar68)();\n  aVar3 = aStack_2f4;\n  aVar4 = aStack_300;\n  pcStack_33c = (char *)**(undefined4 **)(pcVar68 + 0x16664);\n  aVar65 = (anon_union_4_5_a39f51ca_for_opr)*preg.sbcset;\n  aVar63.sbcset = (re_bitset_ptr_t)0x0;\n  aStack_338 = aVar55;\n  aStack_334 = aVar57;\n  aStack_330 = aVar50;\n  paStack_32c = (anon_union_4_5_a39f51ca_for_opr *)aVar10;\n  aStack_328 = aVar51;\n  aStack_324 = aVar5;\n  aStack_320 = aVar64;\n  aStack_31c = aVar46;\n  aStack_318 = aVar60;\n  pcStack_314 = pcVar70;\n  aStack_308 = aVar59;\n  (**(code **)(pcVar68 + 0x165e0))(&aStack_3c4,0,0x88);\n  iStack_458 = ((mbstate_t *)(preg.sbcset + 4))->__count;\n  if (iStack_458 != 0) {\n    if ((*(byte *)(preg.sbcset + 7) & 0x10) == 0) {\n      iStack_458 = 0;\n    }\n    else if (aVar52.sbcset == aVar4.sbcset) {\n      iStack_458 = 0;\n    }\n    else if ((char)*(byte *)(preg.sbcset + 7) < '\0') {\n      iStack_458 = 0;\n    }\n  }\n  if ((re_dfa_t *)preg.sbcset[6] < (uint)aStack_2f8) {\n    iStack_428 = (int)(aStack_2f8.idx + -1) - (int)preg.sbcset[6];\n  }\n  else {\n    iStack_428 = 0;\n  }\n  aStack_370 = aVar65;\n  if ((wint_t *)preg.sbcset[2] == (wint_t *)0x0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  if ((aVar65.mbcset)->nchar_classes == 0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  if (*(int *)(aVar65.idx + 0x28) == 0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  if (*(int *)(aVar65.idx + 0x2c) == 0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n           ((anon_union_4_5_a39f51ca_for_opr *)(aVar65.idx + 0x30))->ctx_type;\n  if ((re_dfa_t *)aVar63.sbcset == (re_dfa_t *)0x0) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  aVar5 = aVar4;\n  if ((((*(int *)((aVar65.mbcset)->nchar_classes + 8) == 0) &&\n       (*(int *)(*(int *)(aVar65.idx + 0x28) + 8) == 0)) &&\n      ((*(int *)(*(int *)(aVar65.idx + 0x2c) + 8) == 0 || (((uint)preg.sbcset[7] & 0x1000000) == 0))\n      )) && ((aVar5 = aVar52, (re_dfa_t *)aVar52.sbcset != (re_dfa_t *)0x0 &&\n             (aVar52 = aVar4, aVar5 = aVar4, (re_dfa_t *)aVar4.sbcset != (re_dfa_t *)0x0)))) {\n    prStack_460 = (re_dfastate_t *)0x1;\n    goto LAB_00028eb4;\n  }\n  aVar46.sbcset = aStack_2f8.sbcset - iStack_428;\n  if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\n    bVar39 = *(int *)(aVar65.idx + 0x4c) != 0;\n  }\n  else {\n    bVar39 = true;\n  }\n  uVar11 = ((anon_union_4_2_91654ee9_for___value *)(preg.sbcset + 5))->__wch;\n  bStack_37c = (byte)((uint)((int)preg.sbcset[3] << 9) >> 0x1f);\n  aStack_374 = (anon_union_4_5_a39f51ca_for_opr)\n               ((anon_union_4_5_a39f51ca_for_opr *)(aVar65.idx + 0x5c))->idx;\n  aVar59.sbcset = (re_bitset_ptr_t)((int)(aVar65.mbcset)->range_ends + 1);\n  if (aVar59.idx < aStack_374.idx) {\n    aVar59 = aStack_374;\n  }\n  aVar60.idx._0_3_ = 0;\n  aVar60.idx._3_1_ = ((re_bitset_ptr_t)(aStack_308.idx + 1)).idx < aVar59.idx;\n  aStack_394.sbcset = aStack_308.sbcset;\n  aStack_398.sbcset = aStack_308.sbcset;\n  bStack_379 = bStack_37c;\n  if (uVar11 != 0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 3) >> 0x1f);\n  aStack_38c.sbcset = aStack_308.sbcset;\n  aStack_390.sbcset = aStack_308.sbcset;\n  aVar63.sbcset = ((re_bitset_ptr_t)(aStack_308.idx + 1)).sbcset;\n  if ((re_dfa_t *)aVar60.sbcset == (re_dfa_t *)0x0) {\n    aVar63 = aVar59;\n  }\n  aStack_3c4 = aVar45;\n  uStack_384 = uVar11;\n  prStack_460 = (re_dfastate_t *)re_string_realloc_buffers((re_string_t *)&aStack_3c4,aVar63.idx);\n  if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_00028e84;\n  iStack_380 = aVar65.idx + 0x60;\n  bStack_376 = (byte)((uint)(*(int *)(aVar65.idx + 0x58) << 4) >> 0x1f);\n  aVar59.sbcset = (re_bitset_ptr_t)0x0;\n  aStack_3a8.sbcset = aVar59.sbcset;\n  if ((bStack_379 == 0) && (aStack_3c0 = aVar45, *(int *)(aVar65.idx + 0x5c) < 2)) {\n    aStack_3a8 = aStack_308;\n  }\n  aStack_38c = aStack_2fc;\n  aStack_390 = aStack_2fc;\n  bStack_377 = (byte)((uint)((int)preg.sbcset[7] << 7) >> 0x1f);\n  iVar6 = *(int *)(aVar65.idx + 0x4c);\n  uVar61 = iVar6 * 2;\n  aStack_36c.sbcset = aStack_2f0.sbcset;\n  aStack_368.idx = -1;\n  aStack_3a4 = aStack_3a8;\n  if ((int)uVar61 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar61;\n    uStack_344 = uVar61;\n    if ((aVar46.sbcset < (re_dfa_t *)0x2) && ((*(byte *)(aVar65.idx + 0x58) & 0x40) == 0)) {\n      aStack_360.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if ((aStack_2f0.ctx_type & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar6 = 1;\n      aVar64 = aVar52;\n      if (aVar5.idx < aVar52.idx) {\n        iVar6 = -1;\n        aVar64 = aVar5;\n      }\n      aVar51 = aVar5;\n      if (aVar5.idx <= aVar52.idx) {\n        aVar51 = aVar52;\n      }\n      iVar36 = *(int *)(aVar65.idx + 0x5c);\n      rVar43 = 8;\n      if (iStack_458 != 0) {\n        if (iVar36 == 1) {\n          aVar59.idx = 4;\n        }\n        else if ((-1 < (int)preg.sbcset[3] << 9) && (uVar11 == 0)) {\n          aVar59.idx = 4;\n        }\n        aVar63.sbcset = (re_bitset_ptr_t)0x0;\n        if (aVar52.idx <= aVar5.idx) {\n          aVar63.idx = 2;\n        }\n        rVar43 = uVar11 != 0 | aVar59.ctx_type | aVar63.ctx_type;\n      }\n      aStack_3ec = aVar52;\n      if (aVar52.idx < aVar64.idx) {\n        prStack_460 = (re_dfastate_t *)0x1;\n      }\n      else if (aVar51.idx < aVar52.idx) {\n        prStack_460 = (re_dfastate_t *)0x1;\n      }\n      else {\n        paVar42 = &aStack_3ec;\n        if (aVar5.idx < aVar52.idx) {\n          paVar42 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        }\n        iVar25 = *(int *)(pcVar68 + 0x16538);\n        iVar26 = *(int *)(pcVar68 + 0x16458);\nLAB_000291e4:\n        aVar5 = aStack_308;\n        if (rVar43 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x000291fc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          prVar7 = (re_dfastate_t *)\n                   (*(pcVar68 + *(int *)(iVar26 + -0x3404 + (rVar43 - 4) * 4) + 0x1e420))();\n          return prVar7;\n        }\n        while( true ) {\n          aVar59 = aStack_3ec;\n          prVar27 = (re_dfa_t *)((int)aStack_3ec.sbcset - iStack_3ac);\n          aVar60 = aStack_2f0;\n          if (aStack_3a4.sbcset <= prVar27) {\n            aVar63 = aStack_3ec;\n            prStack_460 = (re_dfastate_t *)(*(code *)(iVar25 + -0x440))(&aStack_3c4);\n            if (prStack_460 != (re_dfastate_t *)0x0) goto LAB_00028e84;\n            prVar27 = (re_dfa_t *)((int)aVar59.sbcset - iStack_3ac);\n          }\n          if (aVar59.idx < aVar5.idx) {\n            uVar61 = (uint)*(byte *)((int)aStack_3c0.sbcset + (int)prVar27);\n          }\n          else {\n            uVar61 = 0;\n          }\n          aVar59.sbcset = aVar59.sbcset + iVar6;\n          if (*(char *)(iStack_458 + uVar61) != '\0') break;\n          aStack_3ec.sbcset = aVar59.sbcset;\n          if (aVar59.idx < aVar64.idx) {\n            prStack_460 = (re_dfastate_t *)0x1;\n            goto LAB_00028e84;\n          }\n          if (aVar51.idx < aVar59.idx) {\n            prStack_460 = (re_dfastate_t *)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          aVar63 = aStack_3ec;\n          aVar60 = aStack_2f0;\n          prVar7 = (re_dfastate_t *)(*(code *)(iVar25 + -0x440))(&aStack_3c4);\n          aVar59 = aStack_370;\n          aVar5 = aStack_39c;\n          prStack_460 = prVar7;\n          if (prVar7 != (re_dfastate_t *)0x0) goto LAB_00028e84;\n          if (((iVar36 != 1) && ((re_dfa_t *)aStack_3a8.sbcset != (re_dfa_t *)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          aStack_35c.sbcset = (re_bitset_ptr_t)0x0;\n          aStack_448.sbcset = aStack_39c.sbcset;\n          aStack_3e8.sbcset = (re_bitset_ptr_t)0x0;\n          aVar50 = (anon_union_4_5_a39f51ca_for_opr)(aStack_370.mbcset)->nchar_classes;\n          aVar60 = aStack_36c;\n          if ((*(byte *)(aVar50.idx + 0x34) & 1) == 0) break;\n          aVar63.sbcset = (re_bitset_ptr_t)(aStack_39c.idx + -1);\n          uVar61 = re_string_context_at((re_string_t *)&aStack_3c4,aVar63.idx,aStack_36c.idx);\n          if ((uVar61 & 1) == 0) {\n            if (uVar61 == 0) break;\n            if ((uVar61 & 6) == 6) {\n              aVar50 = (anon_union_4_5_a39f51ca_for_opr)\n                       ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x30))->mbcset;\n              goto LAB_000283bc;\n            }\n            if ((uVar61 & 2) != 0) {\n              aVar50 = (anon_union_4_5_a39f51ca_for_opr)\n                       ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x2c))->mbcset;\n              goto LAB_000283bc;\n            }\n            if ((uVar61 & 4) == 0) break;\n            aVar60 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar50.idx + 0x28))->mbcset;\n            aVar63 = aVar59;\n            aVar50.sbcset =\n                 &re_acquire_state_context\n                            (&aStack_3e8.idx,aVar59.sbcset,(re_node_set *)aVar60.mbcset,uVar61)->\n                  hash;\n            if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) break;\n            if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0xc) goto LAB_00028fb4;\n            iVar53 = *(int *)(pcVar68 + 0x16458);\n          }\n          else {\n            aVar50 = (anon_union_4_5_a39f51ca_for_opr)\n                     ((anon_union_4_5_a39f51ca_for_opr *)(aVar59.idx + 0x28))->mbcset;\nLAB_000283bc:\n            iVar53 = *(int *)(pcVar68 + 0x16458);\n            if ((re_dfa_t *)aVar50.sbcset != (re_dfa_t *)0x0) break;\n          }\n          aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x16458) + -0x3140);\n          aStack_3ec.sbcset =\n               (re_bitset_ptr_t)\n               (**(code **)(pcVar68 + 0x16570))\n                         (*(int *)(pcVar68 + 0x16458) + -0x30b8,aVar63.sbcset,0x431,iVar53 + -0x33c0\n                         );\n          if (aStack_3ec.sbcset == aVar51.sbcset) {\n            if (aStack_3ec.idx < aStack_308.idx) {\n              uVar61 = (uint)*(byte *)((int)aVar45.sbcset + (int)aStack_3ec.sbcset);\n            }\n            else {\n              uVar61 = 0;\n            }\n            if (uVar11 != 0) {\n              uVar61 = (uint)*(byte *)(uVar11 + uVar61);\n            }\n            if (*(char *)(iStack_458 + uVar61) == '\0') {\n              prStack_460 = (re_dfastate_t *)0x1;\n              aVar60 = aStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar2 = paVar42 != (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        if (((re_dfa_t *)aStack_360.sbcset == (re_dfa_t *)0x0) ||\n           (((anon_union_4_5_a39f51ca_for_opr *)(aStack_360.sbcset + aVar5.idx))->mbcset =\n                 (re_charset_t *)aVar50, *(int *)(aVar59.idx + 0x4c) == 0)) {\nLAB_000283f0:\n          if ((int)*(bin_tree_t **)(aVar50.idx + 0x34) << 4 < 0) {\n            if (((*(byte *)(aVar50.idx + 0x34) & 1) == 0) ||\n               (aVar63 = aVar50, aVar60 = aVar5,\n               IVar34 = check_halt_state_context\n                                  ((re_match_context_t *)&aStack_3c4,aVar50.idx,aVar5.idx),\n               IVar34 != 0)) {\n              aVar59 = aVar5;\n              if (!bVar39) goto LAB_0002945c;\n              aVar59.idx = 1;\n            }\n            else {\n              aVar5.idx = -1;\n              aVar59.sbcset = (re_bitset_ptr_t)0x0;\n            }\n          }\n          else {\n            aVar5.idx = -1;\n            aVar59.sbcset = (re_bitset_ptr_t)0x0;\n          }\n          iVar53 = *(int *)(pcVar68 + 0x16538);\n          iVar28 = *(int *)(pcVar68 + 0x16538);\n          iVar29 = *(int *)(pcVar68 + 0x16538);\n          paStack_454 = paVar42;\n          while( true ) {\n            uVar71 = CONCAT44(aStack_3a8.sbcset,aStack_394.sbcset);\n            aVar10.sbcset =\n                 (re_bitset_ptr_t)\n                 ((int)&((re_string_t *)&(aStack_39c.mbcset)->mbchars)->raw_mbs + 1);\n            aVar63 = aStack_39c;\n            if (aStack_38c.idx <= aStack_39c.idx) break;\n            if (((int)uStack_3a0 <= aVar10.idx) && ((int)uStack_3a0 < aStack_394.idx))\n            goto LAB_00028534;\n            if (aStack_3a8.idx <= aVar10.idx) {\n              while ((int)((ulonglong)uVar71 >> 0x20) < (int)uVar71) {\nLAB_00028534:\n                aVar63.sbcset =\n                     (re_bitset_ptr_t)\n                     ((int)&((re_string_t *)&(aVar63.mbcset)->mbchars)->raw_mbs + 2);\n                aStack_3e8.sbcset = (re_bitset_ptr_t)(*(code *)(iVar53 + -0x47b0))(&aStack_3c4);\n                if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0x0) break;\n                if ((re_dfa_t *)aStack_3e8.sbcset == (re_dfa_t *)0xc) goto LAB_00028fb4;\n                aVar60.idx = 0x468;\n                aVar63.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar68 + 0x16458) + -0x3140);\n                uVar71 = (**(code **)(pcVar68 + 0x16570))\n                                   (*(int *)(pcVar68 + 0x16458) + -0x30b8,aVar63.sbcset,0x468,\n                                    *(int *)(pcVar68 + 0x16458) + -0x33c0);\n                aVar59 = aVar65;\n              }\n            }\n            aVar55 = aStack_370;\n            if ((int)*(bin_tree_t **)(aVar50.idx + 0x34) << 5 < 0) {\n              if (0 < (int)(aVar50.mbcset)->range_ends) {\n                iVar30 = *(int *)(pcVar68 + 0x16538);\n                pcVar70 = (code *)(*(int *)(pcVar68 + 0x16538) + -0x455c);\n                iVar58 = 0;\n                do {\n                  aVar57 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)\n                           (((re_node_set *)&(aVar50.mbcset)->char_classes)->alloc + iVar58 * 4))->\n                           idx;\n                  pwVar56 = (aVar55.mbcset)->mbchars;\n                  uVar61 = pwVar56[aVar57.idx * 2 + 1];\n                  if ((uVar61 & 0x800) != 0) {\n                    if ((uVar61 & 0xffc000) != 0) {\n                      aVar63 = aStack_39c;\n                      uVar32 = (*pcVar70)(&aStack_3c4,aStack_39c.sbcset,aStack_36c.sbcset);\n                      uVar61 = (uint)(pwVar56[aVar57.idx * 2 + 1] << 8) >> 0x16;\n                      if ((uVar61 & 4) == 0) {\n                        uVar44 = uVar32 & 1;\n                        if ((uVar61 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar44 = uVar61 & 8;\n                        if ((uVar32 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar44 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar61 & 0x20) != 0) && ((uVar32 & 2) == 0)) ||\n                         (((uVar61 & 0x80) != 0 && ((uVar32 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    aVar60.sbcset = (re_bitset_ptr_t)&aStack_3c4;\n                    aVar63 = aVar57;\n                    iVar31 = (*(code *)(iVar29 + -0x860))\n                                       (aVar55.sbcset,aVar57.sbcset,aVar60.sbcset,aStack_39c.sbcset)\n                    ;\n                    if (iVar31 != 0) {\n                      aVar52.sbcset = iVar31 + aStack_39c.sbcset;\n                      if (iVar31 <= iStack_34c) {\n                        iVar31 = iStack_34c;\n                      }\n                      aVar63.sbcset = aVar52.sbcset;\n                      iStack_34c = iVar31;\n                      aStack_3e4.sbcset =\n                           (re_bitset_ptr_t)(*(code *)(iVar30 + -0x4648))(&aStack_3c4);\n                      aVar4.sbcset = aStack_3e4.sbcset;\n                      if ((re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0) goto LAB_000294e4;\n                      aVar60.sbcset =\n                           (re_bitset_ptr_t)\n                           ((aVar55.mbcset)->ncoll_syms +\n                           (aVar55.mbcset)->char_classes[aVar57.idx] * 0xc);\n                      pIVar54 = (Idx *)(aStack_360.sbcset + aVar52.idx);\n                      iVar31 = *pIVar54;\n                      if (iVar31 == 0) {\n                        aStack_3e0 = (anon_union_4_5_a39f51ca_for_opr)*aVar60.sbcset;\n                        aStack_3dc = *(anon_union_4_5_a39f51ca_for_opr *)(aVar60.sbcset + 1);\n                        aStack_3d8 = *(anon_union_4_5_a39f51ca_for_opr *)(aVar60.sbcset + 2);\n                        uVar61 = (*pcVar70)(&aStack_3c4,(byte *)(aVar52.idx + -1),aStack_36c.sbcset)\n                        ;\n                        aVar60.sbcset = (re_bitset_ptr_t)&aStack_3e0;\n                        aVar63 = aVar55;\n                        prVar66 = re_acquire_state_context\n                                            (&aStack_3e4.idx,(re_dfa_t *)aVar55.mbcset,\n                                             (re_node_set *)aVar60.mbcset,uVar61);\n                        *pIVar54 = (Idx)prVar66;\n                      }\n                      else {\n                        aVar63 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)(iVar31 + 0x28))->mbcset;\n                        aStack_3e4.idx =\n                             re_node_set_init_union\n                                       ((re_node_set *)&aStack_3e0,(re_node_set *)aVar63.mbcset,\n                                        (re_node_set *)aVar60.mbcset);\n                        aVar4.idx = aStack_3e4.idx;\n                        if ((re_dfa_t *)aStack_3e4.sbcset != (re_dfa_t *)0x0) goto LAB_000294e4;\n                        uVar61 = (*pcVar70)(&aStack_3c4,(byte *)(aVar52.idx + -1),aStack_36c.sbcset)\n                        ;\n                        pIVar54 = (Idx *)(aStack_360.sbcset + aVar52.idx);\n                        aVar60.sbcset = (re_bitset_ptr_t)&aStack_3e0;\n                        aVar63 = aVar55;\n                        prVar66 = re_acquire_state_context\n                                            (&aStack_3e4.idx,(re_dfa_t *)aVar55.mbcset,\n                                             (re_node_set *)aVar60.mbcset,uVar61);\n                        *pIVar54 = (Idx)prVar66;\n                        (**(code **)(pcVar68 + 0x16670))(aStack_3d8.sbcset);\n                      }\n                      if ((aStack_360.sbcset[aVar52.idx] == 0) &&\n                         (aVar4 
[cell cut: 3,489,297 characters, first 262,144 kept]
(translation_unit "code ******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {\n          pppppppcVar26 = pppppppcVar38;\n          iVar40 = FUN_00024660(param_2);\n          *param_1 = iVar40;\n          if (iVar40 == 0) {\n            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];\n          }\n          else {\n            pppppppcVar6 = (code *******)0x0;\n          }\n        }\n      }\n      else {\n        pppppppcVar6 = (code *******)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);\n    if (*unaff_s4 == (code ******)0x0) {\n      *unaff_s4 = (code ******)param_3;\n      goto LAB_00024fd0;\n    }\n    pppppppcVar31 = (code *******)(*unaff_s4)[10];\n    if (param_3 == (code *******)0x0) {\n      local_30 = *pppppppcVar31;\n      local_2c = pppppppcVar31[1];\n      local_28 = pppppppcVar31[2];\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s4 = (code ******)pppppppcVar6;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (code *******)param_3[10];\n    pppppppcVar26 = unaff_s4;\n    iVar40 = FUN_0001ae50(&local_30);\n    *param_1 = iVar40;\n    if (iVar40 == 0) {\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);\n      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s6 = (code *****)pppppppcVar6;\n      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(local_28);\n      ppppppcVar4 = pppppppcVar38[0x13];\n      goto LAB_00024fd4;\n    }\n    pppppppcVar6 = (code *******)0x0;\n  }\n  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {\n    return pppppppcVar6;\n  }\n  pppppppcVar42 = local_24;\n  puVar45 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar45 + 0x20ee4;\n  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);\n  pppppppcVar43 = (code *******)pppppppcVar42[0x15];\n  pppppppcStack_94 = (code *******)0x0;\n  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);\n  pppppppcVar25 = pppppppcVar43;\n  pppppppcVar27 = param_4;\n  pppppppcVar28 = param_4;\n  pppppppcStack_70 = param_2;\n  pppppppcStack_6c = pppppppcVar6;\n  pppppppcStack_68 = pppppppcVar36;\n  pppppppcStack_64 = pppppppcVar38;\n  pppppppcStack_60 = unaff_s4;\n  piStack_5c = param_1;\n  ppppppcStack_58 = unaff_s6;\n  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {\n    pppppppcVar6 = (code *******)0x0;\n    if (param_4[1] != (code ******)0x0) {\n      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      *ppppppcVar4 = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;\n    pppppppcVar25 = pppppppcVar26;\n    if (pppppppcVar6 == (code *******)0x0) {\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {\n        pppppppcVar25 = pppppppcVar31;\n        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);\n        pppppppcVar36 = (code *******)0x0;\n        puVar45 = puStack_d8;\n        if (pppppppcStack_a0 != (code *******)0xffffffff) {\n          unaff_s8 = (code *******)pppppppcVar42[0x15];\n          pppppppcStack_90 = (code *******)0x0;\n          if ((int)pppppppcVar6[1] < 1) {\n            pppppppcVar36 = (code *******)0x0;\n          }\n          else {\n            iStack_9c = (int)pppppppcStack_a0 * 0x14;\n            pppppppcStack_c4 = (code *******)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];\n              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||\n                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&\n                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {\n                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);\n                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);\n                pppppppcStack_c8 = pppppppcStack_a0;\n                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);\n                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);\n                do {\n                  param_4 = pppppppcVar36;\n                  if (pppppppcVar43 == (code *******)*param_4) {\n                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));\n                    if ((int)param_4[3] - (int)param_4[2] == 0) {\n                      pppppppcStack_cc =\n                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));\n                    }\n                    else {\n                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);\n                    }\n                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&\n                        (pppppppcVar25 = pppppppcStack_cc,\n                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&\n                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),\n                       puVar45 = puStack_d8, iVar40 != 0)) {\n                      pppppppcVar25 = pppppppcVar26 + 4;\n                      pppppppcStack_e0 = pppppppcStack_cc;\n                      pppppppcVar27 = pppppppcVar43;\n                      pppppppcVar28 = pppppppcVar31;\n                      pcStack_dc = pcVar46;\n                      pppppppcStack_b0 = pppppppcVar25;\n                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);\n                      puVar45 = puStack_d8;\n                      if (iVar40 == 0) {\n                        if (pppppppcStack_90 == (code *******)0x0) {\n                          pppppppcStack_90 = (code *******)*pppppppcVar26;\n                          pppppppcVar28 = (code *******)pppppppcVar26[1];\n                          pppppppcVar27 = (code *******)pppppppcVar26[2];\n                          pppppppcStack_84 = (code *******)pppppppcVar26[3];\n                          ppppppcStack_80 = pppppppcVar26[4];\n                          ppppppcStack_7c = pppppppcVar26[5];\n                          ppppppcStack_78 = pppppppcVar26[6];\n                          pppppppcVar25 = pppppppcStack_b0;\n                          pppppppcStack_8c = pppppppcVar28;\n                          pppppppcStack_88 = pppppppcVar27;\n                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        }\n                        pppppppcVar25 = pppppppcStack_c8;\n                        pppppppcStack_88 = pppppppcVar43;\n                        pppppppcStack_84 = pppppppcVar31;\n                        iVar40 = FUN_00019e64(&ppppppcStack_80);\n                        if (iVar40 == 0) {\n                          pppppppcVar36 = (code *******)0xc;\n                          puVar45 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];\n                        pppppppcVar25 = (code *******)&pppppppcStack_90;\n                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);\n                        puVar45 = puStack_d8;\n                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        pppppppcVar25 = (code *******)pppppppcVar26[1];\n                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);\n                        if ((pppppppcVar25 != (code *******)0x0) &&\n                           (pppppppcVar27 = pppppppcStack_90,\n                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),\n                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                        goto LAB_00025aa0;\n                        pppppppcVar36 = pppppppcStack_c8;\n                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;\n                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);\n                        pppppppcVar25 = (code *******)(iVar40 + -1);\n                        FUN_000188ac(&ppppppcStack_80);\n                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);\n                        puVar45 = puStack_d8;\n                      }\n                    }\n                  }\n                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);\n                  pppppppcVar36 = param_4 + 5;\n                } while (*(code *)(param_4 + 4) != (code)0x0);\n              }\n              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);\n              pppppppcVar36 = (code *******)0x0;\n            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);\nLAB_00025aa0:\n            if (pppppppcStack_90 != (code *******)0x0) {\n              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);\n              puVar45 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);\n    pppppppcVar27 = pppppppcVar31;\n    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;\n    pppppppcStack_90 = (code *******)0x0;\n    pppppppcVar27 = param_4;\n    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);\n    pppppppcVar36 = pppppppcStack_90;\n    puVar45 = puStack_d8;\n    if (pppppppcStack_90 == (code *******)0x0) {\n      pppppppcVar27 = unaff_s8 + 7;\n      if (unaff_s8[7] == (code ******)0x0) {\n        pppppppcStack_cc = unaff_s8 + 7;\n        pppppppcVar25 = (code *******)param_4[1];\n        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);\n        if (pppppppcStack_90 != (code *******)0x0) {\n          pppppppcVar36 = (code *******)0xc;\n          puVar45 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < (int)param_4[1]) {\n          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar40 = 0;\n          do {\n            pppppppcStack_90 = (code *******)0x0;\n            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);\n            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);\n            if (pppppppcStack_90 != (code *******)0x0) {\n              pppppppcVar36 = (code *******)0xc;\n              puVar45 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar40 = iVar40 + 1;\n          } while (iVar40 < (int)param_4[1]);\n        }\n      }\n      pppppppcVar27 = unaff_s8 + 7;\n      pppppppcVar25 = pppppppcVar6;\n      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);\n      puVar45 = puStack_d8;\n      pppppppcStack_b4 = pppppppcVar36;\n      pppppppcStack_94 = pppppppcVar36;\n      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n      if (pppppppcVar26[5] != (code ******)0x0) {\n        ppppppcStack_bc = pppppppcVar42[0x1d];\n        if (0 < (int)pppppppcVar26[5]) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          pppppppcStack_cc = (code *******)0x0;\n          do {\n            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;\n            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&\n               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {\n              pppppppcVar28 = (code *******)*pppppppcVar43;\n              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];\n              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {\n                if (0 < (int)param_4[1]) {\n                  ppppppcVar41 = param_4[2];\n                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];\n                  pppppppcStack_c4 = (code *******)0xffffffff;\n                  pppppppcVar25 = (code *******)0xffffffff;\n                  do {\n                    pppppppcVar38 = (code *******)*ppppppcVar41;\n                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;\n                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {\n                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {\n                        pppppppcVar25 = pppppppcVar38;\n                      }\n                    }\n                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&\n                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {\n                      pppppppcStack_c4 = pppppppcVar38;\n                    }\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                  } while (ppppppcVar41 != ppppppcVar39);\n                  if ((int)pppppppcVar25 < 0) {\n                    unaff_s8 = pppppppcStack_b4;\n                    if (-1 < (int)pppppppcStack_c4) {\n                      do {\n                        ppppppcVar41 = param_4[2];\nLAB_00025600:\n                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];\n                        pppppppcStack_c8 = pppppppcVar36;\n                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,\n                                               pppppppcStack_c4);\n                        if ((iVar40 == 0) &&\n                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,\n                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,\n                           iVar40 == 0)) {\n                          pppppppcVar25 = pppppppcStack_c8;\n                          pppppppcVar27 = param_4;\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                          unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                        }\n                        unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                      } while ((int)unaff_s8 < (int)param_4[1]);\n                    }\n                  }\n                  else {\n                    pppppppcVar27 = param_4;\n                    pppppppcVar28 = pppppppcVar6;\n                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                    puVar45 = puStack_d8;\n                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                    if ((-1 < (int)pppppppcStack_c4) &&\n                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {\n                      ppppppcVar41 = param_4[2];\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = pppppppcStack_b4;\n                if (0 < (int)param_4[1]) {\n                  do {\n                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];\n                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&\n                        (pppppppcVar28 = pppppppcVar6,\n                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))\n                       && (pppppppcVar27 = param_4,\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),\n                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                  } while ((int)unaff_s8 < (int)param_4[1]);\n                }\n              }\n            }\n            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);\n          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);\n        }\n        pppppppcStack_94 = (code *******)0x0;\n      }\n      ppppppcVar41 = *pppppppcVar26;\n      pppppppcVar25 = pppppppcVar43;\n      pppppppcVar27 = param_4;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {\n    return pppppppcVar36;\n  }\n  pcVar46 = *(code **)(puVar45 + -0x7ddc);\n  pcVar47 = FUN_00025af4;\n  pppppppcVar38 = pppppppcStack_74;\n  (*pcVar46)();\n  pcStack_f4 = pcVar47;\n  pppppppcStack_f8 = unaff_s8;\n  ppppppcStack_fc = ppppppcVar4;\n  pppppppcStack_100 = pppppppcVar43;\n  pppppppcStack_104 = pppppppcVar42;\n  pppppppcStack_108 = pppppppcVar36;\n  pppppppcStack_10c = pppppppcVar6;\n  pppppppcStack_110 = pppppppcVar31;\n  pppppppcStack_114 = param_4;\n  pppppppcStack_118 = pppppppcVar26;\n  pcStack_158 = pcVar46 + 0x205dc;\n  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);\n  pppppppcVar31 = (code *******)pppppppcVar25[3];\n  pppppppcVar26 = (code *******)pppppppcVar25[2];\n  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);\n  if (pppppppcVar6 == (code *******)0x0) {\n    pppppppcVar28 = &ppppppcStack_128;\n    pppppppcVar26 = pppppppcVar25;\n    pppppppcVar27 = pppppppcVar31;\n    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);\n    pppppppcVar6 = pppppppcStack_13c;\n    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {\n      pppppppcStack_150 = pppppppcStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);\n        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {\n          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);\n        }\n        else {\n          pppppppcStack_150 = pppppppcStack_13c;\n        }\n        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {\n          pppppppcVar26 = (code *******)0x0;\n          pppppppcVar27 = unaff_s8;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n          pppppppcVar6 = pppppppcStack_13c;\n          goto LAB_00025e98;\n        }\n        uStack_124 = 0;\n        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));\n        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);\n        if ((ppppppcVar4 != (code ******)0x0) &&\n           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          pppppppcVar43 = pppppppcStack_13c;\n          do {\n            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];\n            iStack_14c = (int)pppppppcVar26 * 8;\n            pppppppcVar28 = pppppppcVar31;\n            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {\nLAB_00025d44:\n              pppppppcVar27 = pppppppcVar31;\n              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);\n              if ((iVar40 != 0) &&\n                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {\n                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,\n                                        pppppppcVar42[3][(int)pppppppcVar26]);\n                pppppppcVar36 = (code *******)0x1;\n                if (iVar40 != 0) {\n                  ppppppcVar41 = pppppppcVar25[5];\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              ppppppcStack_148 = pppppppcVar25[3];\n              ppppppcStack_134 = pppppppcVar38[0x15];\n              pppppppcVar27 = pppppppcVar38;\n              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);\n              if ((int)pppppppcVar36 < 1) {\n                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\n              else {\n                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&\n                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==\n                     (code *****)0x0 ||\n                    (iVar40 = (*pcStack_138)((*pppppppcVar25)\n                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,\n                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))\n                   )) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\nLAB_00025c9c:\n              if (ppppppcVar41 != (code ******)0x0) {\n                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];\n                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);\n                pppppppcStack_160 = pppppppcVar26;\n                pppppppcStack_15c = pppppppcVar31;\n                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);\n                if (iVar40 != 0) goto LAB_00025cfc;\n              }\n              iVar40 = (*pcStack_130)(&ppppppcStack_128);\n              if (iVar40 == 0) {\n                pppppppcVar6 = (code *******)0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);\n        }\n        pppppppcVar28 = &ppppppcStack_128;\n        pppppppcVar26 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);\n      } while ((pppppppcVar6 == (code *******)0x0) &&\n              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n  }\nLAB_00025e98:\n  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return pppppppcVar6;\n  }\n  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar47 = FUN_00025ee8;\n  pppppppcVar34 = pppppppcStack_11c;\n  (*pcVar46)();\n  pcStack_218 = pcVar46 + 0x201e8;\n  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);\n  pppppppcStack_204 = (code *******)0x0;\n  pppppppcVar34[3] = (code ******)pppppppcVar28;\n  pppppppcVar34[2] = (code ******)0x0;\n  pppppppcVar34[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;\n  pppppppcVar32 = (code *******)*pppppppcVar34;\n  pppppppcVar29 = pppppppcVar28;\n  pppppppcStack_198 = pppppppcVar31;\n  pppppppcStack_194 = pppppppcVar38;\n  pppppppcStack_190 = pppppppcVar25;\n  pppppppcStack_18c = pppppppcVar6;\n  pppppppcStack_188 = pppppppcVar36;\n  pppppppcStack_184 = pppppppcVar42;\n  pppppppcStack_180 = pppppppcVar43;\n  ppppppcStack_17c = ppppppcVar4;\n  pppppppcStack_178 = unaff_s8;\n  pcStack_174 = pcVar47;\n  if (pppppppcVar34[1] < (code ******)0x88) {\n    pppppppcVar38 = (code *******)0x88;\n    pppppppcVar36 = pppppppcVar27;\n    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);\n    if (pppppppcVar32 != (code *******)0x0) {\n      pppppppcVar34[1] = (code ******)0x88;\n      *pppppppcVar34 = (code ******)pppppppcVar32;\n      goto LAB_00025f80;\n    }\n    pppppppcVar31 = (code *******)0xc;\n  }\n  else {\nLAB_00025f80:\n    pppppppcVar34[2] = (code ******)0x88;\n    pppppppcVar36 = (code *******)0x88;\n    pppppppcVar38 = (code *******)0x0;\n    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);\n    pppppppcVar32[0x10] = (code ******)0x1f;\n    if (pppppppcVar27 < (code *******)0xaaaaaaa) {\n      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);\n      ppppppcVar4 = (code ******)\n                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);\n      *pppppppcVar32 = ppppppcVar4;\n      if (pppppppcVar27 == (code *******)0x0) {\n        pppppppcVar6 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar6 = (code *******)0x1;\n        do {\n          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);\n        } while (pppppppcVar6 <= pppppppcVar27);\n      }\n      pppppppcVar38 = pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);\n      pppppppcVar32[8] = ppppppcVar4;\n      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);\n      pppppppcVar32[0x11] = (code ******)pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();\n      pppppppcVar32[0x17] = ppppppcVar4;\n      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);\n      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&\n         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {\n        iVar40 = 3;\n        if (pbVar7[3] == 0x2d) {\n          iVar40 = 4;\n        }\n        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);\n        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);\n        if (iVar40 == 0) {\n          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;\n      if (1 < (int)pppppppcVar32[0x17]) {\n        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {\n          pppppppcVar38 = (code *******)0x1;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);\n          pppppppcVar32[0xf] = ppppppcVar4;\n          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;\n          pppppppcVar42 = (code *******)0x0;\n          unaff_s8 = (code *******)0x1;\n          do {\n            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);\n            uVar21 = 0;\n            do {\n              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);\n              if (pppppppcVar31 != (code *******)0xffffffff) {\n                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);\n                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =\n                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);\n              }\n              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {\n                *(byte *)(pppppppcVar32 + 0x16) =\n                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;\n              }\n              uVar21 = uVar21 + 1;\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n            } while (uVar21 != 0x20);\n            pppppppcVar42 = pppppppcVar42 + 1;\n            pppppppcVar43 = (code *******)0x20;\n          } while (pppppppcVar42 != (code *******)0x20);\n        }\n        else {\n          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);\n        }\n      }\n      if ((*pppppppcVar32 != (code ******)0x0) &&\n         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar43 = (code *******)pppppppcVar34[5];\n        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);\n        bVar19 = pppppppcVar42 != (code *******)0x0;\n        unaff_s8 = (code *******)(uint)bVar19;\n        pppppppcVar36 = (code *******)0x4c;\n        pppppppcVar38 = (code *******)0x0;\n        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);\n        if (pppppppcVar43 != (code *******)0x0) {\n          unaff_s8 = (code *******)0x1;\n        }\n        cStack_1a5 = (char)unaff_s8;\n        ppppppcStack_1a0 = pppppppcVar32[0x17];\n        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);\n        pppppppcStack_1f0 = pppppppcVar26;\n        pppppppcStack_1c4 = pppppppcVar27;\n        pppppppcStack_1c0 = pppppppcVar27;\n        pppppppcStack_1bc = pppppppcVar27;\n        pppppppcStack_1b8 = pppppppcVar27;\n        pppppppcStack_1b0 = pppppppcVar43;\n        uStack_1a8 = bVar19;\n        if (0 < (int)pppppppcVar27) {\n          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);\n          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          pppppppcVar26 = apppppppcStack_1ec[0];\n        }\n        apppppppcStack_1ec[0] = pppppppcVar26;\n        if (pppppppcVar42 == (code *******)0x0) {\n          if ((int)pppppppcVar32[0x17] < 2) {\n            if (pppppppcVar43 != (code *******)0x0) {\n              FUN_00018720();\n            }\n          }\n          else {\n            FUN_0001a644(&pppppppcStack_1f0);\n          }\n        }\n        else {\n          if (1 < (int)pppppppcVar32[0x17]) {\n            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);\n            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);\n            do {\n              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);\n              pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n              if (pppppppcVar25 != (code *******)0x0) break;\n              if (((int)pppppppcVar27 <= iStack_1d0) ||\n                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),\n                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;\n              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);\n            } while (pppppppcVar25 == (code *******)0x0);\n            goto LAB_000261b4;\n          }\n          FUN_0001a578(&pppppppcStack_1f0);\n        }\nLAB_000263f8:\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar34[6] = (code ******)0x0;\n        pppppppcVar43 = (code *******)*pppppppcVar34;\n        pppppppcVar43[0x20] = (code ******)pppppppcVar28;\n        pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);\n        pppppppcStack_21c = (code *******)&pppppppcStack_204;\n        uStack_220 = 0;\n        pppppppcVar38 = pppppppcVar34;\n        pppppppcVar6 = (code *******)\n                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);\n        pppppppcVar29 = (code *******)0x2;\n        if (pppppppcStack_204 == (code *******)0x0) {\n          pppppppcVar36 = (code *******)0x0;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar6 != (code *******)0x0) {\nLAB_000264d8:\n            pppppppcVar29 = (code *******)0x10;\n            pppppppcVar38 = pppppppcVar6;\n            pppppppcVar36 = pppppppcVar27;\n            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);\n          }\n          if ((pppppppcVar27 == (code *******)0x0) ||\n             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {\n            pppppppcStack_204 = (code *******)0xc;\n            goto LAB_0002671c;\n          }\n          pppppppcVar32[0xd] = (code ******)pppppppcVar31;\n          pppppppcVar27 = (code *******)*pppppppcVar34;\n          ppppppcVar4 = pppppppcVar27[1];\n          iVar40 = (int)ppppppcVar4 << 2;\n          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);\n          pppppppcVar27[3] = (code ******)pppppppcVar28;\n          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);\n          pppppppcVar27[4] = (code ******)pppppppcVar43;\n          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);\n          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[5] = (code ******)pppppppcVar26;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[6] = ppppppcVar4;\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar28 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar43 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar26 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (ppppppcVar4 == (code ******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else {\n            ppppppcVar4 = (code ******)\n                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);\n            pppppppcVar27[0x21] = ppppppcVar4;\n            if (ppppppcVar4 != (code ******)0x0) {\n              ppppppcVar4 = (code ******)0x0;\n              if (pppppppcVar34[6] != (code ******)0x0) {\n                do {\n                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;\n                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                } while (ppppppcVar4 < pppppppcVar34[6]);\n              }\n              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,\n                           pppppppcVar27);\n              ppppppcVar4 = pppppppcVar34[6];\n              if (ppppppcVar4 == (code ******)0x0) {\nLAB_0002672c:\n                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);\n                pppppppcVar27[0x21] = (code ******)0x0;\n              }\n              else {\n                ppppppcVar41 = pppppppcVar27[0x21];\n                if (*ppppppcVar41 == (code *****)0x0) {\n                  ppppppcVar39 = (code ******)0x0;\n                  do {\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                    if (ppppppcVar4 == ppppppcVar39) {\n                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;\n                      break;\n                    }\n                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);\n                }\n              }\n            }\n            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);\n            pppppppcVar25 =\n                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);\n            pppppppcVar36 = pppppppcVar27;\n            if (pppppppcVar25 == (code *******)0x0) {\n              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);\n              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);\n              if (pppppppcVar25 == (code *******)0x0) {\n                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);\n                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);\n                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);\n                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);\n                pppppppcVar25 = pppppppcVar26;\n                if (pppppppcVar26 == (code *******)0x0) {\n                  pppppppcVar43 = (code *******)0x0;\n                  unaff_s8 = &ppppppcStack_1fc;\n                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);\n                  pppppppcVar6 = (code *******)0x0;\n                  pcVar46 = pcStack_218;\nLAB_0002676c:\n                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {\nLAB_00026778:\n                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);\n                    pppppppcVar29 = (code *******)0x1;\n                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==\n                        (code *****)0x0) {\n                      pppppppcVar38 = pppppppcVar27;\n                      pppppppcVar36 = pppppppcVar6;\n                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);\n                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;\n                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);\n                      pcVar46 = pcStack_218;\n                      if (pppppppcVar28[1] == (code ******)0x0) {\n                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                        pppppppcVar43 = (code *******)0x1;\n                        pcVar46 = pcStack_218;\n                      }\n                    }\n                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n                    goto LAB_0002676c;\n                  }\n                  if (pppppppcVar43 != (code *******)0x0) {\n                    pppppppcVar43 = (code *******)0x0;\n                    pppppppcVar6 = (code *******)0x0;\n                    goto LAB_00026778;\n                  }\n                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&\n                      (pppppppcVar34[6] != (code ******)0x0)) &&\n                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  else {\n                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  ppppppcVar4 = (code ******)\n                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);\n                  pppppppcVar27[7] = ppppppcVar4;\n                  if (ppppppcVar4 == (code ******)0x0) {\n                    pppppppcVar25 = (code *******)0xc;\n                    goto LAB_000261b4;\n                  }\n                  pcVar46 = pcStack_218;\n                  if (pppppppcVar6 != (code *******)0x0) {\n                    iVar40 = 0;\n                    ppppppcVar4 = (code ******)0x0;\n                    do {\n                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);\n                      *pcVar47 = (code)0x0;\n                      pcVar47[1] = (code)0x0;\n                      pcVar47[2] = (code)0x0;\n                      pcVar47[3] = (code)0x0;\n                      pcVar47[4] = (code)0x0;\n                      pcVar47[5] = (code)0x0;\n                      pcVar47[6] = (code)0x0;\n                      pcVar47[7] = (code)0x0;\n                      pcVar47[8] = (code)0x0;\n                      pcVar47[9] = (code)0x0;\n                      pcVar47[10] = (code)0x0;\n                      pcVar47[0xb] = (code)0x0;\n                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                      iVar40 = iVar40 + 0xc;\n                    } while (ppppppcVar4 < pppppppcVar27[2]);\n                    if (pppppppcVar27[2] != (code ******)0x0) {\n                      unaff_s8 = (code *******)0x0;\n                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);\n                      pppppppcStack_210 = (code *******)0x0;\n                      do {\n                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))\n                        ;\n                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {\n                          pppppppcVar28 = (code *******)0x0;\n                          do {\n                            pppppppcVar38 = pppppppcStack_210;\n                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);\n                            pppppppcVar25 = (code *******)0xc;\n                            if (iVar40 == 0) goto LAB_000261b4;\n                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);\n                            pppppppcVar6 = pppppppcVar6 + 1;\n                            pcVar46 = pcStack_218;\n                          } while ((int)pppppppcVar28 <\n                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));\n                        }\n                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);\n                        unaff_s8 = unaff_s8 + 3;\n                      } while (pppppppcStack_210 < pppppppcVar27[2]);\n                    }\n                  }\nLAB_00026918:\n                  pppppppcStack_204 = (code *******)0x0;\n                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&\n                      (pppppppcVar42 == (code *******)0x0)) &&\n                     (pppppppcVar34[5] == (code ******)0x0)) {\n                    pppppppcVar6 = pppppppcVar43;\n                    if (pppppppcVar32[2] != (code ******)0x0) {\n                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);\n                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {\n                    \n                    \n                        pppppppcVar26 =\n                             (code *******)\n                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();\n                        return pppppppcVar26;\n                      }\n                      (**(code **)(pcVar46 + -0x7ea4))(0);\n                      if (pppppppcVar6 != (code *******)0x0) {\n                        pppppppcVar36 = (code *******)0x7;\n                        pppppppcVar26 = (code *******)0x0;\n                        do {\n                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;\n                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {\n                            if (*(char *)ppppppcVar4 < '\0') {\n                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);\n                            }\n                          }\n                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {\n                            *(char *)(ppppppcVar4 + 1) = '\a';\n                          }\n                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);\n                        } while (pppppppcVar26 < pppppppcVar32[2]);\n                      }\n                    }\n                    pppppppcVar32[0x17] = (code ******)0x1;\n                    if (0 < (int)pppppppcVar32[0x13]) {\n                      pppppppcVar6 = (code *******)0x1;\n                    }\n                    *(byte *)(pppppppcVar32 + 0x16) =\n                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |\n                         (byte)(((uint)pppppppcVar6 & 1) << 6);\n                  }\n                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];\n                  pppppppcVar32[0x12] = ppppppcVar4;\n                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);\n                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);\n                  pppppppcVar6 = pppppppcVar31;\n                  pppppppcStack_200 = pppppppcVar31;\n                  if (pppppppcVar31 == (code *******)0x0) {\n                    if ((0 < (int)pppppppcVar32[0x13]) &&\n                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {\n                      pppppppcVar42 = &ppppppcStack_1fc;\n                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);\n                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);\n                      pppppppcVar27 = (code *******)0x0;\n                      do {\n                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];\n                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);\n                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {\n                          iVar40 = 0;\n                          piVar8 = piStack_1f4;\n                          if (iStack_1f8 < 1) {\nLAB_00026bb4:\n                            if (iVar40 != iStack_1f8) {\n                              pppppppcVar26 =\n                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];\n                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);\n                              if (iVar40 == 0) {\n                                pppppppcVar38 =\n                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);\n                                pppppppcVar27 =\n                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);\n                                pppppppcVar6 = pppppppcVar27;\n                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;\n                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&\n                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;\n                              iVar40 = iVar40 + 1;\n                              piVar8 = piVar8 + 1;\n                            } while (iStack_1f8 != iVar40);\n                          }\n                        }\n                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                      } while ((int)pppppppcVar27 < iStack_1f8);\n                    }\n                    pppppppcVar29 = (code *******)0x0;\n                    pppppppcVar36 = &ppppppcStack_1fc;\n                    pppppppcVar38 = pppppppcVar32;\n                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);\n                    pppppppcVar32[9] = ppppppcVar4;\n                    pppppppcVar6 = pppppppcStack_200;\n                    if (ppppppcVar4 != (code ******)0x0) {\n                      pppppppcVar29 = (code *******)0x1;\n                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar32[10] = ppppppcVar4;\n                      }\n                      else {\n                        pppppppcVar42 = &ppppppcStack_1fc;\n                        pppppppcVar28 = (code *******)&pppppppcStack_200;\n                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);\n                        pppppppcVar32[10] = ppppppcVar4;\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar29 = (code *******)0x6;\n                        pppppppcVar38 = pppppppcVar32;\n                        pppppppcVar36 = pppppppcVar42;\n                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar6 = pppppppcStack_200;\n                        if (((pppppppcVar32[10] == (code ******)0x0) ||\n                            (pppppppcVar32[0xb] == (code ******)0x0)) ||\n                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                      pppppppcVar6 = pppppppcVar31;\n                    }\n                  }\nLAB_00026ce0:\n                  pppppppcStack_204 = pppppppcVar6;\n                  FUN_0001db98(pppppppcVar34);\n                  FUN_0001dc20(&pppppppcStack_1f0);\n                  pppppppcVar31 = pppppppcStack_204;\n                  if (pppppppcStack_204 != (code *******)0x0) {\n                    FUN_0001dc9c(pppppppcVar32);\n                    *pppppppcVar34 = (code ******)0x0;\n                    pppppppcVar34[1] = (code ******)0x0;\n                    pppppppcVar31 = pppppppcStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pppppppcVar36 = (code *******)0x0;\n          if (pppppppcVar6 != (code *******)0x0) {\n            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          pppppppcVar32[0xd] = (code ******)0x0;\n          pppppppcVar25 = pppppppcStack_204;\n        }\nLAB_000261b4:\n        pppppppcStack_204 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        FUN_0001db98(pppppppcVar34);\n        FUN_0001dc20(&pppppppcStack_1f0);\n        FUN_0001dc9c(pppppppcVar32);\n        *pppppppcVar34 = (code ******)0x0;\n        pppppppcVar34[1] = (code ******)0x0;\n        pppppppcVar31 = pppppppcStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    pppppppcStack_204 = (code *******)0xc;\n    FUN_0001dc9c(pppppppcVar32);\n    *pppppppcVar34 = (code ******)0x0;\n    pppppppcVar34[1] = (code ******)0x0;\n    pppppppcVar31 = pppppppcStack_204;\n  }\nLAB_00026d24:\n  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {\n    return pppppppcVar31;\n  }\n  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);\n  uVar48 = 0x26e9c;\n  pppppppcVar31 = pppppppcStack_19c;\n  (*pcVar46)();\n  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);\n  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);\n  pppppppcVar25 = pppppppcVar38;\n  pppppppcStack_258 = pppppppcVar32;\n  pppppppcStack_254 = pppppppcVar34;\n  pppppppcStack_250 = pppppppcVar27;\n  pppppppcStack_24c = pppppppcVar6;\n  pppppppcStack_248 = pppppppcVar28;\n  pppppppcStack_244 = pppppppcVar42;\n  pppppppcStack_240 = pppppppcVar43;\n  pppppppcStack_23c = pppppppcVar26;\n  pppppppcStack_238 = unaff_s8;\n  uStack_234 = uVar48;\n  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);\n  if (pppppppcStack_2ec == (code *******)0x0) {\n    pppppppcVar43 = (code *******)0x0;\n  }\n  else {\n    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;\n    pppppppcVar38[0xb] = (code ******)0x0;\n    pppppppcVar38[0xc] = (code ******)0x0;\n    pppppppcStack_2e4 = pppppppcStack_2ec;\n    FUN_0001a53c(appppppcStack_2bc);\n    pppppppcVar43 = pppppppcStack_300;\n    if ((int)pppppppcVar38[2] < 1) {\n      pppppppcVar27 = (code *******)0x0;\n    }\n    else {\n      pppppppcVar27 = (code *******)0x0;\n      pppppppcStack_2f4 = (code *******)0x0;\n      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;\n      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;\n      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;\n      do {\n        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);\n        pppppppcVar6 = (code *******)\n                       (*pppppppcVar31 +\n                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);\n        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);\n        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);\n        if (pppppppcVar26 == (code *******)0x1) {\n          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);\n          pppppppcVar43 = pppppppcStack_300;\nLAB_00026f88:\n          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;\n          if (((uint)pppppppcVar32 & 0x20) != 0) {\n            pppppppcVar34 = appppppcStack_2bc;\n            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);\n            FUN_0001a53c(pppppppcVar34);\n            pppppppcVar43 = pppppppcStack_300;\n            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;\n            FUN_00018540(appppppcStack_2bc,10);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n          if (((uint)pppppppcVar32 & 0x80) == 0) {\n            if (((uint)pppppppcVar32 & 4) == 0) {\nLAB_0002700c:\n              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);\n              if (pppppppcVar32 == (code *******)0x0) {\nLAB_00027078:\n                if ((int)pppppppcVar27 < 1) {\n                  pppppppcVar34 = (code *******)0x0;\n                }\n                else {\n                  pppppppcVar32 = pppppppcStack_2ec + 0x300;\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];\n                  pppppppcVar42 = pppppppcStack_2ec;\n                  do {\n                    if ((pppppppcVar26 != (code *******)0x1) ||\n                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),\n                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {\n                      pppppppcVar37 = appppppcStack_2bc;\n                      uVar21 = 0;\n                      pppppppcVar25 = pppppppcVar37;\n                      pppppppcVar36 = pppppppcVar32;\n                      pppppppcVar29 = appppppcStack_2bc + 8;\n                      do {\n                        ppppppcVar4 = *pppppppcVar25;\n                        ppppppcVar41 = *pppppppcVar36;\n                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);\n                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;\n                        pppppppcVar25 = pppppppcVar25 + 1;\n                        pppppppcVar36 = pppppppcVar36 + 1;\n                        pppppppcVar29 = pppppppcVar29 + 1;\n                      } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                      if (uVar21 != 0) {\n                        pppppppcVar36 = appppppcStack_27c;\n                        pppppppcVar28 = (code *******)0x0;\n                        uVar21 = 0;\n                        pppppppcVar43 = pppppppcVar32;\n                        do {\n                          pppppppcVar29 = (code *******)*pppppppcVar37;\n                          ppppppcVar4 = *pppppppcVar43;\n                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);\n                          *pppppppcVar36 = ppppppcVar41;\n                          uVar21 = uVar21 | (uint)ppppppcVar41;\n                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);\n                          *pppppppcVar37 = ppppppcVar4;\n                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);\n                          pppppppcVar37 = pppppppcVar37 + 1;\n                          pppppppcVar43 = pppppppcVar43 + 1;\n                          pppppppcVar36 = pppppppcVar36 + 1;\n                        } while (pppppppcVar43 != pppppppcVar32 + 8);\n                        if (uVar21 != 0) {\n                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                          *pppppppcVar43 = appppppcStack_27c[0];\n                          pppppppcVar43[1] = appppppcStack_27c[1];\n                          pppppppcVar43[2] = appppppcStack_27c[2];\n                          pppppppcVar43[3] = appppppcStack_27c[3];\n                          pppppppcVar43[4] = ppppppcStack_26c;\n                          pppppppcVar43[5] = ppppppcStack_268;\n                          pppppppcVar43[6] = ppppppcStack_264;\n                          pppppppcVar43[7] = ppppppcStack_260;\n                          *pppppppcVar32 = appppppcStack_2bc[8];\n                          pppppppcVar32[1] = appppppcStack_2bc[9];\n                          pppppppcVar32[2] = appppppcStack_2bc[10];\n                          pppppppcVar32[3] = appppppcStack_2bc[0xb];\n                          pppppppcVar32[4] = ppppppcStack_28c;\n                          pppppppcVar32[5] = ppppppcStack_288;\n                          pppppppcVar32[6] = ppppppcStack_284;\n                          pppppppcVar32[7] = ppppppcStack_280;\n                          iVar40 = (*(code *)ppppppcStack_2dc)\n                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                              pppppppcVar42);\n                          if (iVar40 != 0) goto LAB_000275d4;\n                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                        }\n                        iVar40 = (*(code *)ppppppcStack_2e8)\n                                           (pppppppcVar42,\n                                            *(undefined4 *)\n                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                        if (iVar40 == 0) goto LAB_000275d4;\n                        pppppppcVar43 = pppppppcStack_300;\n                        if (pppppppcVar28 == (code *******)0x0) break;\n                      }\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar32 = pppppppcVar32 + 8;\n                    pppppppcVar42 = pppppppcVar42 + 3;\n                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);\n                }\n                if (pppppppcVar27 == pppppppcVar34) {\n                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                  *pppppppcVar43 = appppppcStack_2bc[0];\n                  pppppppcVar43[1] = appppppcStack_2bc[1];\n                  pppppppcVar43[2] = appppppcStack_2bc[2];\n                  pppppppcVar43[3] = appppppcStack_2bc[3];\n                  pppppppcVar43[4] = appppppcStack_2bc[4];\n                  pppppppcVar43[5] = appppppcStack_2bc[5];\n                  pppppppcVar43[6] = appppppcStack_2bc[6];\n                  pppppppcVar43[7] = appppppcStack_2bc[7];\n                  iVar40 = (*(code *)ppppppcStack_2d8)\n                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                      *(undefined4 *)\n                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                  if (iVar40 != 0) {\nLAB_000275d4:\n                    if ((int)pppppppcVar27 < 1) {\n                      pppppppcVar27 = (code *******)0xffffffff;\n                      pppppppcVar43 = pppppppcStack_300;\n                    }\n                    else {\n                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n                      pppppppcVar32 = pppppppcStack_2ec;\n                      do {\n                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n                        pppppppcVar32 = pppppppcVar32 + 3;\n                        pppppppcVar27 = (code *******)0xffffffff;\n                        pppppppcVar43 = pppppppcStack_300;\n                      } while (pppppppcVar32 != pppppppcVar34);\n                    }\n                    goto LAB_00027610;\n                  }\n                  FUN_0001a53c(appppppcStack_2bc);\n                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                  pppppppcVar43 = pppppppcStack_300;\n                }\n              }\n              else if ((pppppppcVar26 == (code *******)0x1) &&\n                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {\n                FUN_0001a53c(appppppcStack_2bc);\n                pppppppcVar43 = pppppppcStack_300;\n              }\n              else {\n                pppppppcVar25 = appppppcStack_2bc;\n                if ((int)pppppppcVar31[0x17] < 2) {\n                  pppppppcVar37 = pppppppcVar31 + 0x18;\n                  pppppppcVar29 = appppppcStack_2bc + 8;\n                  uVar21 = 0;\n                  do {\n                    ppppppcVar4 = *pppppppcVar37;\n                    pppppppcVar36 = (code *******)*pppppppcVar25;\n                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);\n                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar37 = pppppppcVar37 + 1;\n                  } while (pppppppcVar25 != pppppppcVar29);\n                }\n                else {\n                  pppppppcVar36 = pppppppcVar31 + 0x18;\n                  ppppppcVar4 = pppppppcVar31[0xf];\n                  uVar21 = 0;\n                  do {\n                    pppppppcVar29 = (code *******)*pppppppcVar25;\n                    ppppppcVar41 = (code ******)\n                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &\n                                   (uint)pppppppcVar29);\n                    *pppppppcVar25 = ppppppcVar41;\n                    uVar21 = uVar21 | (uint)ppppppcVar41;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar36 = pppppppcVar36 + 1;\n                    ppppppcVar4 = ppppppcVar4 + 1;\n                  } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                }\n                if (uVar21 != 0) goto LAB_00027078;\n              }\n            }\n            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))\n            {\n              FUN_0001a53c(appppppcStack_2bc);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            else {\n              ppppppcVar4 = (code ******)appppppcStack_2bc;\n              if ((int)pppppppcVar31[0x17] < 2) {\n                pppppppcVar25 = appppppcStack_2bc;\n                pppppppcVar37 = pppppppcVar31 + 0x18;\n                pppppppcVar29 = appppppcStack_2bc + 8;\n                uVar21 = 0;\n                do {\n                  ppppppcVar4 = *pppppppcVar25;\n                  pppppppcVar36 = (code *******)*pppppppcVar37;\n                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);\n                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;\n                  pppppppcVar25 = pppppppcVar25 + 1;\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (pppppppcVar25 != pppppppcVar29);\n              }\n              else {\n                pppppppcVar36 = pppppppcVar31 + 0x18;\n                ppppppcVar41 = pppppppcVar31[0xf];\n                uVar21 = 0;\n                do {\n                  pppppppcVar29 = (code *******)*ppppppcVar4;\n                  pppppcVar5 = (code *****)\n                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)\n                  ;\n                  *ppppppcVar4 = pppppcVar5;\n                  uVar21 = uVar21 | (uint)pppppcVar5;\n                  ppppppcVar4 = ppppppcVar4 + 1;\n                  pppppppcVar36 = pppppppcVar36 + 1;\n                  ppppppcVar41 = ppppppcVar41 + 1;\n                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);\n              }\n              if (uVar21 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            FUN_0001a53c(appppppcStack_2bc);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n        }\n        else {\n          if (pppppppcVar26 == (code *******)0x3) {\n            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);\n            pppppppcVar43 = pppppppcStack_300;\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)&DAT_00000005) {\n            if ((int)pppppppcVar31[0x17] < 2) {\n              appppppcStack_2bc[0] = (code ******)0xffffffff;\n              appppppcStack_2bc[1] = (code ******)0xffffffff;\n              appppppcStack_2bc[2] = (code ******)0xffffffff;\n              appppppcStack_2bc[3] = (code ******)0xffffffff;\n              appppppcStack_2bc[4] = (code ******)0xffffffff;\n              appppppcStack_2bc[5] = (code ******)0xffffffff;\n              appppppcStack_2bc[6] = (code ******)0xffffffff;\n              appppppcStack_2bc[7] = (code ******)0xffffffff;\n            }\n            else {\n              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)0x7) {\n            appppppcStack_2bc[0] = (code ******)0xffffffff;\n            appppppcStack_2bc[1] = (code ******)0xffffffff;\n            appppppcStack_2bc[2] = (code ******)0xffffffff;\n            appppppcStack_2bc[3] = (code ******)0xffffffff;\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)0xfffffbff;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);\n      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);\n      if (0 < (int)pppppppcVar27) {\n        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);\n        pppppppcStack_2cc = pppppppcStack_2f8;\n        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))\n        {\n          iStack_2d4 = (int)pppppppcVar27 * 0xc;\n          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);\n          if (pppppppcStack_2f0 != (code *******)0x0) {\n            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;\n            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;\n            FUN_0001a53c(appppppcStack_27c);\n            pppppppcVar42 = pppppppcStack_2ec + 1;\n            pppppppcStack_2f4 = pppppppcStack_2f8;\n            ppppppcStack_2d8 = (code ******)0x0;\n            pppppppcVar28 = &ppppppcStack_2c8;\n            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);\n            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;\n            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;\n            do {\n              uStack_2c4 = 0;\n              if (0 < (int)*pppppppcVar42) {\n                pppppppcVar6 = (code *******)0xffffffff;\n                pppppppcVar43 = pppppppcStack_2f8;\n                do {\n                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=\n                      (code *****)0xffffffff) {\n                    pppppppcVar25 =\n                         (code *******)\n                         (pppppppcVar31[6] +\n                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);\n                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);\n                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;\n                  }\n                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n                  pppppppcVar29 = (code *******)0x0;\n                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);\n              }\n              pppppppcVar29 = (code *******)0x0;\n              pppppppcVar25 = pppppppcVar31;\n              pppppppcVar36 = pppppppcVar28;\n              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n              pppppppcVar43 = pppppppcStack_2f4;\n              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;\n              *pppppppcVar6 = ppppppcVar4;\n              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                goto LAB_00027798;\n              }\n              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;\n                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;\n              }\n              else {\n                pppppppcVar29 = (code *******)0x1;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                  goto LAB_00027798;\n                }\n                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {\n                  ppppppcStack_2d8 = (code ******)0x1;\n                }\n                pppppppcVar29 = (code *******)0x2;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) &&\n                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))\n                goto LAB_00027794;\n              }\n              pppppppcVar32 = pppppppcStack_2ec;\n              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);\n              (*(code *)ppppppcStack_2dc)\n                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);\n              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n              pppppppcVar42 = pppppppcVar42 + 3;\n            } while (pppppppcStack_2f4 != pppppppcVar27);\n            pppppppcVar25 = (code *******)0x100;\n            if (ppppppcStack_2d8 == (code ******)0x0) {\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xb] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) {\nLAB_00027794:\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                pppppppcVar43 = pppppppcVar6;\nLAB_00027798:\n                (*(code *)ppppppcVar4)(pppppppcStack_2f0);\n                pppppppcVar6 = pppppppcVar43;\n                goto LAB_000277a4;\n              }\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar31 = pppppppcVar31 + 0x18;\n              pppppppcVar25 = (code *******)0x0;\n              pppppppcVar43 = pppppppcVar32;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                pppppppcVar29 = pppppppcVar25;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar36 = pppppppcStack_2f8;\n                      pppppppcVar34 = pppppppcVar43;\n                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {\n                        do {\n                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);\n                          pppppppcVar37 = pppppppcVar34 + 0x308;\n                          pppppppcVar34 = pppppppcVar34 + 8;\n                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);\n                      }\n                      else {\n                        pppppppcVar36 = (code *******)0x0;\n                      }\n                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2f0;\n                      }\n                      else {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2e4;\n                      }\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 8;\n                pppppppcVar31 = pppppppcVar31 + 1;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar25 != (code *******)0x100);\n            }\n            else {\n              pppppppcVar25 = (code *******)0x200;\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xc] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar25 = pppppppcVar28;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  pppppppcVar29 = pppppppcVar25;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar34 = (code *******)0x0;\n                      ppppppcVar41 = pppppppcVar43[0x300];\n                      pppppppcVar37 = pppppppcVar43;\n                      pppppppcVar2 = pppppppcStack_2f8;\n                      while ((uVar21 & (uint)ppppppcVar41) == 0) {\n                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);\n                        pppppppcVar36 = pppppppcVar37 + 8;\n                        ppppppcVar41 = pppppppcVar37[0x308];\n                        pppppppcVar37 = pppppppcVar36;\n                        pppppppcVar2 = pppppppcVar34;\n                      }\n                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];\n                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = pppppppcVar29 + 1;\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 0x20;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar28 + 0x100 != pppppppcVar25);\n            }\n            pppppppcVar25 = (code *******)0xa;\n            iVar40 = FUN_00018598(appppppcStack_27c);\n            if (iVar40 != 0) {\n              pppppppcVar43 = pppppppcStack_2ec + 0x300;\n              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);\n              do {\n                pppppppcVar42 = pppppppcStack_2f8;\n                pppppppcVar25 = (code *******)0xa;\n                iVar40 = FUN_00018598(pppppppcVar43);\n                if (iVar40 != 0) {\n                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];\n                  pppppppcVar28[10] = ppppppcVar4;\n                  if (ppppppcStack_2d8 != (code ******)0x0) {\n                    pppppppcVar28[0x10a] = ppppppcVar4;\n                  }\n                  break;\n                }\n                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);\n                pppppppcVar43 = pppppppcVar43 + 8;\n              } while (pppppppcStack_2f8 != pppppppcVar27);\n            }\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);\n            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);\n            do {\n              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n              pppppppcVar32 = pppppppcVar32 + 3;\n            } while (pppppppcVar34 != pppppppcVar32);\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n            pppppppcVar43 = (code *******)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n        pppppppcVar32 = pppppppcStack_2ec;\n        do {\n          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n          pppppppcVar32 = pppppppcVar32 + 3;\n        } while (pppppppcVar32 != pppppppcVar34);\n        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n        pppppppcVar43 = (code *******)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);\n    pppppppcVar25 = (code *******)0x100;\n    if (pppppppcVar27 == (code *******)0x0) {\n      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n      pppppppcVar38[0xb] = ppppppcVar4;\n      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);\n    }\n    else {\n      pppppppcVar43 = (code *******)0x0;\n    }\n  }\nLAB_00027804:\n  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {\n    return pppppppcVar43;\n  }\n  ppppppcVar4 = pppppppcStack_300[-0x1f77];\n  pcVar46 = FUN_00027cb0;\n  pppppppcVar22 = pppppppcStack_25c;\n  (*(code *)ppppppcVar4)();\n  pppppppcVar2 = pppppppcStack_2f4;\n  pppppppcVar37 = pppppppcStack_300;\n  ppppcStack_33c = *ppppppcVar4[0x5999];\n  pppppppcVar44 = (code *******)*pppppppcVar22;\n  pppppppcVar43 = (code *******)0x0;\n  pppppppcStack_338 = pppppppcVar32;\n  pppppppcStack_334 = pppppppcVar34;\n  pppppppcStack_330 = pppppppcVar27;\n  pppppppcStack_32c = pppppppcVar6;\n  pppppppcStack_328 = pppppppcVar28;\n  pppppppcStack_324 = pppppppcVar42;\n  pppppppcStack_320 = pppppppcVar31;\n  pppppppcStack_31c = pppppppcVar26;\n  pppppppcStack_318 = pppppppcVar38;\n  pcStack_314 = pcVar46;\n  pppppppcStack_308 = pppppppcVar36;\n  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);\n  ppppppcStack_458 = pppppppcVar22[4];\n  if (ppppppcStack_458 != (code ******)0x0) {\n    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if (pppppppcVar29 == pppppppcVar37) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n  }\n  if (pppppppcVar22[6] < pppppppcStack_2f8) {\n    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));\n  }\n  else {\n    pcStack_428 = (code *)0x0;\n  }\n  pppppppcStack_370 = pppppppcVar44;\n  if (pppppppcVar22[2] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[9] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[10] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[0xb] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar43 = (code *******)pppppppcVar44[0xc];\n  if (pppppppcVar43 == (code *******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar26 = pppppppcVar37;\n  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&\n      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))\n     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&\n         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,\n         pppppppcVar37 != (code *******)0x0)))) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);\n  if (pppppppcVar6 == (code *******)0x0) {\n    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;\n  }\n  else {\n    bVar19 = true;\n  }\n  ppppppcVar41 = pppppppcVar22[5];\n  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);\n  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];\n  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);\n  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {\n    pppppppcVar36 = pppppppcStack_374;\n  }\n  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);\n  pppppppcStack_394 = pppppppcStack_308;\n  pppppppcStack_398 = pppppppcStack_308;\n  bStack_379 = bStack_37c;\n  if (ppppppcVar41 != (code ******)0x0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);\n  pppppppcStack_38c = pppppppcStack_308;\n  pppppppcStack_390 = pppppppcStack_308;\n  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);\n  if (pppppppcVar38 == (code *******)0x0) {\n    pppppppcVar43 = pppppppcVar36;\n  }\n  pppppppcStack_3c4 = pppppppcVar25;\n  ppppppcStack_384 = ppppppcVar41;\n  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);\n  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n  pppppppcStack_380 = pppppppcVar44 + 0x18;\n  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);\n  pppppppcVar36 = (code *******)0x0;\n  pppppppcStack_3a8 = pppppppcVar36;\n  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {\n    pppppppcStack_3a8 = pppppppcStack_308;\n  }\n  pppppppcStack_38c = pppppppcStack_2fc;\n  pppppppcStack_390 = pppppppcStack_2fc;\n  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);\n  ppppppcVar39 = pppppppcVar44[0x13];\n  uVar21 = (int)ppppppcVar39 * 2;\n  pppppppcStack_36c = pppppppcStack_2f0;\n  pppppppcStack_368 = (code *******)0xffffffff;\n  pppppppcStack_3a4 = pppppppcStack_3a8;\n  if ((int)uVar21 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar21;\n    uStack_344 = uVar21;\n    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {\n      pppppppcStack_360 = (code *******)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if (((uint)pppppppcStack_2f0 & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar40 = 1;\n      pppppppcVar31 = pppppppcVar29;\n      if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n        iVar40 = -1;\n        pppppppcVar31 = pppppppcVar26;\n      }\n      pppppppcVar28 = pppppppcVar26;\n      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {\n        pppppppcVar28 = pppppppcVar29;\n      }\n      ppppppcVar39 = pppppppcVar44[0x17];\n      uVar21 = 8;\n      if (ppppppcStack_458 != (code ******)0x0) {\n        if (ppppppcVar39 == (code ******)0x1) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        pppppppcVar43 = (code *******)0x0;\n        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {\n          pppppppcVar43 = (code *******)0x2;\n        }\n        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |\n                 (uint)pppppppcVar43;\n      }\n      pppppppcStack_3ec = pppppppcVar29;\n      if ((int)pppppppcVar29 < (int)pppppppcVar31) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar36 = (code *******)&pppppppcStack_3ec;\n        if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n          pppppppcVar36 = (code *******)0x0;\n        }\n        pppppcVar5 = ppppppcVar4[0x594e];\n        pppppcVar9 = ppppppcVar4[0x5916];\nLAB_000291e4:\n        pppppppcVar26 = pppppppcStack_308;\n        if (uVar21 - 4 < 5) {\n                    \n                    \n          pppppppcVar26 =\n               (code *******)\n               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();\n          return pppppppcVar26;\n        }\n        while( true ) {\n          pppppppcVar27 = pppppppcStack_3ec;\n          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);\n          pppppppcVar38 = pppppppcStack_2f0;\n          if (pppppppcStack_3a4 <= pppppppcVar42) {\n            pppppppcVar43 = pppppppcStack_3ec;\n            pppppppcStack_460 =\n                 (code *******)\n                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);\n          }\n          if ((int)pppppppcVar27 < (int)pppppppcVar26) {\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);\n          }\n          else {\n            uVar10 = 0;\n          }\n          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);\n          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;\n          pppppppcStack_3ec = pppppppcVar27;\n          if ((int)pppppppcVar27 < (int)pppppppcVar31) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n          if ((int)pppppppcVar28 < (int)pppppppcVar27) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          pppppppcVar43 = pppppppcStack_3ec;\n          pppppppcVar38 = pppppppcStack_2f0;\n          pppppppcVar42 =\n               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n          pppppppcVar27 = pppppppcStack_370;\n          pppppppcVar26 = pppppppcStack_39c;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;\n          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          pppppppcStack_35c = (code *******)0x0;\n          pppppppcStack_448 = pppppppcStack_39c;\n          pppppppcStack_3e8 = (code *******)0x0;\n          pppppppcVar32 = (code *******)pppppppcStack_370[9];\n          pppppppcVar38 = pppppppcStack_36c;\n          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;\n          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n          if ((uVar10 & 1) == 0) {\n            if (uVar10 == 0) break;\n            if ((uVar10 & 6) == 6) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xc];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 2) != 0) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xb];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 4) == 0) break;\n            pppppppcVar38 = (code *******)pppppppcVar32[10];\n            pppppppcVar43 = pppppppcVar27;\n            pppppppcVar32 =\n                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);\n            if (pppppppcVar32 != (code *******)0x0) break;\n            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n            pppppcVar30 = ppppppcVar4[0x5916];\n          }\n          else {\n            pppppppcVar32 = (code *******)pppppppcVar27[10];\nLAB_000283bc:\n            pppppcVar30 = ppppppcVar4[0x5916];\n            if (pppppppcVar32 != (code *******)0x0) break;\n          }\n          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n          pppppppcStack_3ec =\n               (code *******)\n               (*(code *)ppppppcVar4[0x595c])\n                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);\n          if (pppppppcStack_3ec == pppppppcVar28) {\n            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {\n              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);\n            }\n            else {\n              uVar10 = 0;\n            }\n            if (ppppppcVar41 != (code ******)0x0) {\n              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);\n            }\n            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {\n              pppppppcStack_460 = (code *******)0x1;\n              pppppppcVar38 = pppppppcStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar1 = pppppppcVar36 != (code *******)0x0;\n        if ((pppppppcStack_360 == (code *******)0x0) ||\n           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,\n           pppppppcVar27[0x13] == (code ******)0x0)) {\nLAB_000283f0:\n          if ((int)pppppppcVar32[0xd] << 4 < 0) {\n            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||\n               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,\n               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {\n              pppppppcVar27 = pppppppcVar26;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n            }\n            else {\n              pppppppcVar26 = (code *******)0xffffffff;\n              pppppppcVar27 = (code *******)0x0;\n            }\n          }\n          else {\n            pppppppcVar26 = (code *******)0xffffffff;\n            pppppppcVar27 = (code *******)0x0;\n          }\n          pppppcVar30 = ppppppcVar4[0x594e];\n          pppppcVar11 = ppppppcVar4[0x594e];\n          pppppcVar12 = ppppppcVar4[0x594e];\n          pppppppcStack_454 = pppppppcVar36;\n          while( true ) {\n            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);\n            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);\n            pppppppcVar43 = pppppppcStack_39c;\n            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;\n            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&\n               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;\n            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {\n              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {\nLAB_00028534:\n                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);\n                pppppppcStack_3e8 =\n                     (code *******)\n                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);\n                if (pppppppcStack_3e8 == (code *******)0x0) break;\n                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n                pppppppcVar38 = (code *******)0x468;\n                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n                uVar49 = (*(code *)ppppppcVar4[0x595c])\n                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,\n                                    ppppppcVar4[0x5916] + -0xcf0);\n                pppppppcVar27 = pppppppcVar44;\n              }\n            }\n            pppppppcVar29 = pppppppcStack_370;\n            if ((int)pppppppcVar32[0xd] << 5 < 0) {\n              if (0 < (int)pppppppcVar32[2]) {\n                pppppcVar35 = ppppppcVar4[0x594e];\n                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;\n                iVar17 = 0;\n                do {\n                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];\n                  ppppppcVar18 = *pppppppcVar29;\n                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];\n                  if (((uint)pppppcVar15 & 0x800) != 0) {\n                    if (((uint)pppppcVar15 & 0xffc000) != 0) {\n                      pppppppcVar43 = pppppppcStack_39c;\n                      uVar16 = (*(code *)pppppcVar13)\n                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);\n                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;\n                      if ((uVar10 & 4) == 0) {\n                        uVar23 = uVar16 & 1;\n                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar23 = uVar10 & 8;\n                        if ((uVar16 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar23 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||\n                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;\n                    pppppppcVar43 = pppppppcVar37;\n                    iVar14 = (*(code *)(pppppcVar12 + -0x218))\n                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)\n                    ;\n                    if (iVar14 != 0) {\n                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);\n                      if (iVar14 <= iStack_34c) {\n                        iVar14 = iStack_34c;\n                      }\n                      pppppppcVar43 = pppppppcVar33;\n                      iStack_34c = iVar14;\n                      pppppppcStack_3e4 =\n                           (code *******)\n                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);\n                      pppppppcVar3 = pppppppcStack_3e4;\n                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                      pppppppcVar38 =\n                           (code *******)\n                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);\n                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                      ppppppcVar18 = *pppppppcVar37;\n                      if (ppppppcVar18 == (code ******)0x0) {\n                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;\n                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];\n                        ppppppcStack_3d8 = pppppppcVar38[2];\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                      }\n                      else {\n                        pppppppcVar43 = (code *******)ppppppcVar18[10];\n                        pppppppcStack_3e4 =\n                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);\n                        pppppppcVar3 = pppppppcStack_3e4;\n                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);\n                      }\n                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&\n                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))\n                      goto LAB_000294e4;\n                    }\n                  }\nLAB_00028744:\n                  iVar17 = iVar17 + 1;\n                } while (iVar17 < (int)pppppppcVar32[2]);\n              }\n              pppppppcStack_3e8 = (code *******)0x0;\n            }\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);\n            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n            do {\n              if (pppppppcVar32[0xb] != (code ******)0x0) {\n                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];\nLAB_00028a40:\n                pppppppcVar29 = pppppppcVar38;\n                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;\n                goto LAB_00028a6c;\n              }\n              ppppppcVar18 = pppppppcVar32[0xc];\n              if (ppppppcVar18 != (code ******)0x0) {\n                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n                if ((uVar16 & 1) == 0) {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];\n                }\n                else {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];\n                }\n                goto LAB_00028a40;\n              }\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar38 = pppppppcStack_36c;\n              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);\n            } while (iVar17 != 0);\n            pppppppcStack_3e8 = (code *******)0xc;\n            pppppppcVar3 = pppppppcStack_3e8;\nLAB_000294e4:\n            pppppppcStack_3e8 = pppppppcVar3;\n            if (pppppppcStack_360 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              break;\n            }\n            pppppppcVar38 = (code *******)0x0;\nLAB_00028a4c:\n            pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n            pppppppcVar29 = (code *******)FUN_00024f5c(&pppppppcStack_3e8,pppppppcVar43);\nLAB_00028a6c:\n            if (pppppppcVar29 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              if ((pppppppcStack_360 == (code *******)0x0) ||\n                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;\n              pppppcVar35 = ppppppcVar4[0x594e];\n              do {\n                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;\n                pppppppcVar29 = pppppppcStack_39c;\n                do {\n                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  pppppppcVar43 = pppppppcStack_35c;\n                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;\n                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (*pppppppcVar37 == (code ******)0x0);\n                pppppppcVar38 = (code *******)0x0;\n                pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n                pppppppcVar29 =\n                     (code *******)\n                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);\n                if (pppppppcStack_3e8 != (code *******)0x0) {\n                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;\n                  break;\n                }\n                pppppppcVar43 = pppppppcStack_35c;\n              } while (pppppppcVar29 == (code *******)0x0);\n            }\n            pppppppcVar37 = pppppppcStack_448;\n            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {\n              bVar1 = false;\n              pppppppcVar37 = pppppppcStack_448;\n            }\n            pppppppcStack_448 = pppppppcVar37;\n            pppppppcVar32 = pppppppcVar29;\n            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&\n               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||\n                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,\n                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {\n              pppppppcVar27 = pppppppcStack_39c;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n              pppppppcStack_454 = (code *******)0x0;\n              pppppppcVar26 = pppppppcStack_39c;\n            }\n          }\nLAB_00029448:\n          pppppppcVar27 = pppppppcVar26;\n          if (pppppppcStack_454 != (code *******)0x0) {\n            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);\n          }\n        }\n        else {\n          pppppppcVar34 = pppppppcVar32 + 1;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar43 = pppppppcVar34;\n          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);\n          pppppppcVar27 = pppppppcStack_3e8;\n          if (pppppppcStack_3e8 == (code *******)0x0) {\n            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {\n              pppppppcVar43 = pppppppcVar34;\n              bVar1 = false;\n            }\n            else {\n              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);\n              pppppppcVar43 = pppppppcVar34;\n              pppppppcVar27 = pppppppcStack_3e8;\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;\n              bVar1 = false;\n            }\n            goto LAB_000283f0;\n          }\n        }\nLAB_0002945c:\n        if (pppppppcVar27 == (code *******)0xffffffff) {\nLAB_000291a4:\n          FUN_0001e14c(&pppppppcStack_3c4);\nLAB_000291bc:\n          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);\n          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;\n          pppppppcStack_460 = (code *******)0x1;\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {\n          pppppppcStack_460 = (code *******)0xc;\n          goto LAB_00028e84;\n        }\n        pppppppcStack_368 = pppppppcVar27;\n        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {\n          if (pppppppcVar6 < (code *******)0x2) {\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          else {\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          if (pppppppcVar6 < (code *******)0x2) {\nLAB_0002930c:\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;\n          }\n          else {\n            cVar20 = *(code *)(pppppppcVar44 + 0x16);\nLAB_000292c0:\n            if (-1 < (char)cVar20) goto LAB_0002930c;\n          }\n          ppppppcVar18 = ppppppcStack_364;\n          pppppppcVar26 = pppppppcStack_370;\n          if (pppppppcVar27 < (code *******)0x3fffffff) {\n            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;\n            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n            if (pppppppcVar32 == (code *******)0x0) {\nLAB_0002923c:\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              pppppppcStack_460 = (code *******)0xc;\n            }\n            else {\n              pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n              if (pppppppcVar26[0x13] == (code ******)0x0) {\n                pppppppcStack_3dc = (code *******)0x0;\n                ppppppcStack_3d8 = ppppppcVar18;\n                uStack_3d0 = 0;\n                uStack_3cc = 0;\n                uStack_3c8 = 0;\n                pppppppcStack_3e0 = pppppppcVar32;\n                pppppppcStack_3d4 = pppppppcVar27;\n                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);\n                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                if (pppppppcStack_460 == (code *******)0x0) {\n                  if (*pppppppcVar32 == (code ******)0x0) {\n                    pppppppcVar34 = (code *******)0x0;\nLAB_00029210:\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    goto LAB_000291a4;\n                  }\nLAB_00028bc8:\n                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n                  pppppppcStack_368 = pppppppcVar27;\n                  ppppppcStack_364 = ppppppcVar18;\n                  pppppppcStack_360 = pppppppcVar32;\n                  goto LAB_00028be8;\n                }\nLAB_0002916c:\n                pppppppcVar34 = (code *******)0x0;\n              }\n              else {\n                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;\n                pppppcVar30 = ppppppcVar4[0x594e];\n                pppppcVar11 = ppppppcVar4[0x594e];\n                while( true ) {\n                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);\n                  pppppppcVar38 = pppppppcVar29;\n                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);\n                  uStack_3d0 = 0;\n                  uStack_3cc = 0;\n                  uStack_3c8 = 0;\n                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n                  pppppppcStack_3e0 = pppppppcVar32;\n                  pppppppcStack_3dc = pppppppcVar34;\n                  ppppppcStack_3d8 = ppppppcVar18;\n                  pppppppcStack_3d4 = pppppppcVar27;\n                  pppppppcStack_460 =\n                       (code *******)\n                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);\n                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                  if (pppppppcStack_460 != (code *******)0x0) break;\n                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))\n                  {\n                    pppppppcVar43 = pppppppcVar32;\n                    pppppppcVar38 = pppppppcVar34;\n                    pppppppcStack_460 =\n                         (code *******)\n                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,\n                                      (code *)((int)pppppppcVar27 + 1));\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;\n                    goto LAB_00028bc8;\n                  }\n                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));\n                  do {\n                    while( true ) {\n                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);\n                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;\n                      pppppppcVar43 = *(code ********)(pcVar46 + -4);\n                      if (pppppppcVar43 != (code *******)0x0) break;\n                      pcVar46 = pcVar46 + -4;\n                    }\n                    pcVar46 = pcVar46 + -4;\n                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);\n                  ppppppcVar18 = (code ******)\n                                 (*(code *)(pppppcVar11 + -0x108d))\n                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);\n                }\n              }\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;\n            }\n          }\n          else {\n            pppppppcStack_460 = (code *******)0xc;\n          }\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar44[0x13] != (code ******)0x0) {\n          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n          pppppppcVar38 = pppppppcVar27;\n          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          goto LAB_0002930c;\n        }\nLAB_000292a8:\n        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {\n          cVar20 = *(code *)(pppppppcVar44 + 0x16);\n          goto LAB_000292c0;\n        }\nLAB_00028be8:\n        pppppppcStack_460 = pppppppcVar42;\n        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;\n        if (pppppppcVar6 < (code *******)0x2) {\n          *pppppppcVar2 = (code ******)0x0;\n          pppppppcVar2[1] = (code ******)pppppppcStack_368;\n          goto LAB_00028c4c;\n        }\n        pppppppcVar26 = pppppppcVar2 + 2;\n        do {\n          pppppppcVar26[1] = (code ******)0xffffffff;\n          *pppppppcVar26 = (code ******)0xffffffff;\n          pppppppcVar26 = pppppppcVar26 + 2;\n        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n        *pppppppcVar2 = (code ******)0x0;\n        pppppppcVar2[1] = (code ******)pppppppcStack_368;\n        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {\nLAB_00028c4c:\n          pppppppcVar26 = pppppppcVar2;\n          do {\n            pppppppcVar43 = (code *******)*pppppppcVar26;\n            if (pppppppcVar43 != (code *******)0xffffffff) {\n              if (cStack_378 != '\0') {\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcVar43 != pppppppcStack_3a8) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);\n                }\n                *pppppppcVar26 = (code ******)pppppppcVar36;\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);\n                }\n                pppppppcVar26[1] = (code ******)pppppppcVar36;\n              }\n              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);\n              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);\n              pppppppcVar26[1] = (code ******)pppppppcVar43;\n            }\n            pppppppcVar26 = pppppppcVar26 + 2;\n          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n          if (0 < (int)pcStack_428) {\n            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;\n            do {\n              *pppppppcVar26 = (code ******)0xffffffff;\n              pppppppcVar26[1] = (code ******)0xffffffff;\n              pppppppcVar26 = pppppppcVar26 + 2;\n            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);\n          }\n          pppppppcVar38 = pppppppcStack_3ec;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar44[0x21] != (code ******)0x0) {\n            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);\n            pppppppcVar6 = (code *******)0x0;\n            pppppppcVar26 = pppppppcVar2;\n            while( true ) {\n              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);\n              if (pppppppcVar38 == pppppppcVar6) break;\n              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {\n                pppppppcVar26[2] =\n                     pppppppcVar2\n                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1\n                           ) * 2];\n                pppppppcVar26[3] =\n                     pppppppcVar2\n                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +\n                      1];\n              }\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n              pppppppcVar26 = pppppppcVar26 + 2;\n            }\n          }\n          goto LAB_00028e84;\n        }\n        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {\n          bVar19 = 0 < (int)pppppppcVar44[0x13];\n        }\n        else {\n          bVar19 = false;\n        }\n        pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n        pppppppcVar38 = pppppppcVar6;\n        pppppppcStack_460 =\n             (code *******)\n             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);\n        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;\n      }\n    }\n    else if (uStack_3a0 < 0x3fffffff) {\n      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);\n      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;\n      pppppppcStack_460 = (code *******)0xc;\n    }\n    else {\n      pppppppcStack_460 = (code *******)0xc;\n    }\n  }\n  else {\n    if (uVar21 < 0xccccccd) {\n      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);\n      iStack_350 = iVar40;\n      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);\n      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;\n    }\n    pppppppcStack_460 = (code *******)0xc;\n  }\nLAB_00028e84:\n  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n  pppppppcVar22 = pppppppcVar38;\n  if (pppppppcVar44[0x13] != (code ******)0x0) {\n    FUN_0001e14c(&pppppppcStack_3c4);\n    (*(code *)ppppppcVar4[0x599c])(iStack_340);\n    (*(code *)ppppppcVar4[0x599c])(iStack_350);\n    pppppppcVar22 = pppppppcVar38;\n  }\n  FUN_0001dc20(&pppppppcStack_3c4);\nLAB_00028eb4:\n  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {\n    return pppppppcStack_460;\n  }\n  pppppcVar5 = ppppppcVar4[0x5991];\n  ppppcVar24 = ppppcStack_33c;\n  (*(code *)pppppcVar5)();\n  *(byte *)(pppppppcVar22 + 7) =\n       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |\n       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;\n  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);\n  if (iVar40 == 0) {\n    pppppppcVar26 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar26 =\n         (code *******)\n         (*(code *)pppppcVar5[0x537d])\n                   (0,(code *)((int)pppppcVar5[0x5301] +\n                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);\n  }\n  return pppppppcVar26;\ncode_r0x000291d8:\n  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;\n  goto LAB_000291e4;\nLAB_00028e48:\n  pppppppcStack_460 = (code *******)0x1;\n  goto LAB_00028e84;\nLAB_00028fb4:\n  pppppppcStack_460 = (code *******)0xc;\n  goto LAB_00028e84;\n}\n\n" (function_definition "code ******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {\n          pppppppcVar26 = pppppppcVar38;\n          iVar40 = FUN_00024660(param_2);\n          *param_1 = iVar40;\n          if (iVar40 == 0) {\n            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];\n          }\n          else {\n            pppppppcVar6 = (code *******)0x0;\n          }\n        }\n      }\n      else {\n        pppppppcVar6 = (code *******)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);\n    if (*unaff_s4 == (code ******)0x0) {\n      *unaff_s4 = (code ******)param_3;\n      goto LAB_00024fd0;\n    }\n    pppppppcVar31 = (code *******)(*unaff_s4)[10];\n    if (param_3 == (code *******)0x0) {\n      local_30 = *pppppppcVar31;\n      local_2c = pppppppcVar31[1];\n      local_28 = pppppppcVar31[2];\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s4 = (code ******)pppppppcVar6;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (code *******)param_3[10];\n    pppppppcVar26 = unaff_s4;\n    iVar40 = FUN_0001ae50(&local_30);\n    *param_1 = iVar40;\n    if (iVar40 == 0) {\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);\n      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s6 = (code *****)pppppppcVar6;\n      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(local_28);\n      ppppppcVar4 = pppppppcVar38[0x13];\n      goto LAB_00024fd4;\n    }\n    pppppppcVar6 = (code *******)0x0;\n  }\n  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {\n    return pppppppcVar6;\n  }\n  pppppppcVar42 = local_24;\n  puVar45 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar45 + 0x20ee4;\n  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);\n  pppppppcVar43 = (code *******)pppppppcVar42[0x15];\n  pppppppcStack_94 = (code *******)0x0;\n  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);\n  pppppppcVar25 = pppppppcVar43;\n  pppppppcVar27 = param_4;\n  pppppppcVar28 = param_4;\n  pppppppcStack_70 = param_2;\n  pppppppcStack_6c = pppppppcVar6;\n  pppppppcStack_68 = pppppppcVar36;\n  pppppppcStack_64 = pppppppcVar38;\n  pppppppcStack_60 = unaff_s4;\n  piStack_5c = param_1;\n  ppppppcStack_58 = unaff_s6;\n  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {\n    pppppppcVar6 = (code *******)0x0;\n    if (param_4[1] != (code ******)0x0) {\n      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      *ppppppcVar4 = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;\n    pppppppcVar25 = pppppppcVar26;\n    if (pppppppcVar6 == (code *******)0x0) {\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {\n        pppppppcVar25 = pppppppcVar31;\n        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);\n        pppppppcVar36 = (code *******)0x0;\n        puVar45 = puStack_d8;\n        if (pppppppcStack_a0 != (code *******)0xffffffff) {\n          unaff_s8 = (code *******)pppppppcVar42[0x15];\n          pppppppcStack_90 = (code *******)0x0;\n          if ((int)pppppppcVar6[1] < 1) {\n            pppppppcVar36 = (code *******)0x0;\n          }\n          else {\n            iStack_9c = (int)pppppppcStack_a0 * 0x14;\n            pppppppcStack_c4 = (code *******)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];\n              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||\n                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&\n                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {\n                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);\n                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);\n                pppppppcStack_c8 = pppppppcStack_a0;\n                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);\n                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);\n                do {\n                  param_4 = pppppppcVar36;\n                  if (pppppppcVar43 == (code *******)*param_4) {\n                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));\n                    if ((int)param_4[3] - (int)param_4[2] == 0) {\n                      pppppppcStack_cc =\n                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));\n                    }\n                    else {\n                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);\n                    }\n                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&\n                        (pppppppcVar25 = pppppppcStack_cc,\n                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&\n                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),\n                       puVar45 = puStack_d8, iVar40 != 0)) {\n                      pppppppcVar25 = pppppppcVar26 + 4;\n                      pppppppcStack_e0 = pppppppcStack_cc;\n                      pppppppcVar27 = pppppppcVar43;\n                      pppppppcVar28 = pppppppcVar31;\n                      pcStack_dc = pcVar46;\n                      pppppppcStack_b0 = pppppppcVar25;\n                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);\n                      puVar45 = puStack_d8;\n                      if (iVar40 == 0) {\n                        if (pppppppcStack_90 == (code *******)0x0) {\n                          pppppppcStack_90 = (code *******)*pppppppcVar26;\n                          pppppppcVar28 = (code *******)pppppppcVar26[1];\n                          pppppppcVar27 = (code *******)pppppppcVar26[2];\n                          pppppppcStack_84 = (code *******)pppppppcVar26[3];\n                          ppppppcStack_80 = pppppppcVar26[4];\n                          ppppppcStack_7c = pppppppcVar26[5];\n                          ppppppcStack_78 = pppppppcVar26[6];\n                          pppppppcVar25 = pppppppcStack_b0;\n                          pppppppcStack_8c = pppppppcVar28;\n                          pppppppcStack_88 = pppppppcVar27;\n                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        }\n                        pppppppcVar25 = pppppppcStack_c8;\n                        pppppppcStack_88 = pppppppcVar43;\n                        pppppppcStack_84 = pppppppcVar31;\n                        iVar40 = FUN_00019e64(&ppppppcStack_80);\n                        if (iVar40 == 0) {\n                          pppppppcVar36 = (code *******)0xc;\n                          puVar45 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];\n                        pppppppcVar25 = (code *******)&pppppppcStack_90;\n                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);\n                        puVar45 = puStack_d8;\n                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        pppppppcVar25 = (code *******)pppppppcVar26[1];\n                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);\n                        if ((pppppppcVar25 != (code *******)0x0) &&\n                           (pppppppcVar27 = pppppppcStack_90,\n                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),\n                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                        goto LAB_00025aa0;\n                        pppppppcVar36 = pppppppcStack_c8;\n                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;\n                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);\n                        pppppppcVar25 = (code *******)(iVar40 + -1);\n                        FUN_000188ac(&ppppppcStack_80);\n                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);\n                        puVar45 = puStack_d8;\n                      }\n                    }\n                  }\n                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);\n                  pppppppcVar36 = param_4 + 5;\n                } while (*(code *)(param_4 + 4) != (code)0x0);\n              }\n              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);\n              pppppppcVar36 = (code *******)0x0;\n            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);\nLAB_00025aa0:\n            if (pppppppcStack_90 != (code *******)0x0) {\n              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);\n              puVar45 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);\n    pppppppcVar27 = pppppppcVar31;\n    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;\n    pppppppcStack_90 = (code *******)0x0;\n    pppppppcVar27 = param_4;\n    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);\n    pppppppcVar36 = pppppppcStack_90;\n    puVar45 = puStack_d8;\n    if (pppppppcStack_90 == (code *******)0x0) {\n      pppppppcVar27 = unaff_s8 + 7;\n      if (unaff_s8[7] == (code ******)0x0) {\n        pppppppcStack_cc = unaff_s8 + 7;\n        pppppppcVar25 = (code *******)param_4[1];\n        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);\n        if (pppppppcStack_90 != (code *******)0x0) {\n          pppppppcVar36 = (code *******)0xc;\n          puVar45 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < (int)param_4[1]) {\n          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar40 = 0;\n          do {\n            pppppppcStack_90 = (code *******)0x0;\n            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);\n            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);\n            if (pppppppcStack_90 != (code *******)0x0) {\n              pppppppcVar36 = (code *******)0xc;\n              puVar45 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar40 = iVar40 + 1;\n          } while (iVar40 < (int)param_4[1]);\n        }\n      }\n      pppppppcVar27 = unaff_s8 + 7;\n      pppppppcVar25 = pppppppcVar6;\n      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);\n      puVar45 = puStack_d8;\n      pppppppcStack_b4 = pppppppcVar36;\n      pppppppcStack_94 = pppppppcVar36;\n      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n      if (pppppppcVar26[5] != (code ******)0x0) {\n        ppppppcStack_bc = pppppppcVar42[0x1d];\n        if (0 < (int)pppppppcVar26[5]) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          pppppppcStack_cc = (code *******)0x0;\n          do {\n            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;\n            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&\n               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {\n              pppppppcVar28 = (code *******)*pppppppcVar43;\n              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];\n              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {\n                if (0 < (int)param_4[1]) {\n                  ppppppcVar41 = param_4[2];\n                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];\n                  pppppppcStack_c4 = (code *******)0xffffffff;\n                  pppppppcVar25 = (code *******)0xffffffff;\n                  do {\n                    pppppppcVar38 = (code *******)*ppppppcVar41;\n                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;\n                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {\n                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {\n                        pppppppcVar25 = pppppppcVar38;\n                      }\n                    }\n                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&\n                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {\n                      pppppppcStack_c4 = pppppppcVar38;\n                    }\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                  } while (ppppppcVar41 != ppppppcVar39);\n                  if ((int)pppppppcVar25 < 0) {\n                    unaff_s8 = pppppppcStack_b4;\n                    if (-1 < (int)pppppppcStack_c4) {\n                      do {\n                        ppppppcVar41 = param_4[2];\nLAB_00025600:\n                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];\n                        pppppppcStack_c8 = pppppppcVar36;\n                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,\n                                               pppppppcStack_c4);\n                        if ((iVar40 == 0) &&\n                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,\n                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,\n                           iVar40 == 0)) {\n                          pppppppcVar25 = pppppppcStack_c8;\n                          pppppppcVar27 = param_4;\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                          unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                        }\n                        unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                      } while ((int)unaff_s8 < (int)param_4[1]);\n                    }\n                  }\n                  else {\n                    pppppppcVar27 = param_4;\n                    pppppppcVar28 = pppppppcVar6;\n                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                    puVar45 = puStack_d8;\n                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                    if ((-1 < (int)pppppppcStack_c4) &&\n                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {\n                      ppppppcVar41 = param_4[2];\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = pppppppcStack_b4;\n                if (0 < (int)param_4[1]) {\n                  do {\n                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];\n                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&\n                        (pppppppcVar28 = pppppppcVar6,\n                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))\n                       && (pppppppcVar27 = param_4,\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),\n                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                  } while ((int)unaff_s8 < (int)param_4[1]);\n                }\n              }\n            }\n            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);\n          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);\n        }\n        pppppppcStack_94 = (code *******)0x0;\n      }\n      ppppppcVar41 = *pppppppcVar26;\n      pppppppcVar25 = pppppppcVar43;\n      pppppppcVar27 = param_4;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {\n    return pppppppcVar36;\n  }\n  pcVar46 = *(code **)(puVar45 + -0x7ddc);\n  pcVar47 = FUN_00025af4;\n  pppppppcVar38 = pppppppcStack_74;\n  (*pcVar46)();\n  pcStack_f4 = pcVar47;\n  pppppppcStack_f8 = unaff_s8;\n  ppppppcStack_fc = ppppppcVar4;\n  pppppppcStack_100 = pppppppcVar43;\n  pppppppcStack_104 = pppppppcVar42;\n  pppppppcStack_108 = pppppppcVar36;\n  pppppppcStack_10c = pppppppcVar6;\n  pppppppcStack_110 = pppppppcVar31;\n  pppppppcStack_114 = param_4;\n  pppppppcStack_118 = pppppppcVar26;\n  pcStack_158 = pcVar46 + 0x205dc;\n  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);\n  pppppppcVar31 = (code *******)pppppppcVar25[3];\n  pppppppcVar26 = (code *******)pppppppcVar25[2];\n  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);\n  if (pppppppcVar6 == (code *******)0x0) {\n    pppppppcVar28 = &ppppppcStack_128;\n    pppppppcVar26 = pppppppcVar25;\n    pppppppcVar27 = pppppppcVar31;\n    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);\n    pppppppcVar6 = pppppppcStack_13c;\n    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {\n      pppppppcStack_150 = pppppppcStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);\n        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {\n          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);\n        }\n        else {\n          pppppppcStack_150 = pppppppcStack_13c;\n        }\n        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {\n          pppppppcVar26 = (code *******)0x0;\n          pppppppcVar27 = unaff_s8;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n          pppppppcVar6 = pppppppcStack_13c;\n          goto LAB_00025e98;\n        }\n        uStack_124 = 0;\n        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));\n        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);\n        if ((ppppppcVar4 != (code ******)0x0) &&\n           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          pppppppcVar43 = pppppppcStack_13c;\n          do {\n            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];\n            iStack_14c = (int)pppppppcVar26 * 8;\n            pppppppcVar28 = pppppppcVar31;\n            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {\nLAB_00025d44:\n              pppppppcVar27 = pppppppcVar31;\n              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);\n              if ((iVar40 != 0) &&\n                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {\n                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,\n                                        pppppppcVar42[3][(int)pppppppcVar26]);\n                pppppppcVar36 = (code *******)0x1;\n                if (iVar40 != 0) {\n                  ppppppcVar41 = pppppppcVar25[5];\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              ppppppcStack_148 = pppppppcVar25[3];\n              ppppppcStack_134 = pppppppcVar38[0x15];\n              pppppppcVar27 = pppppppcVar38;\n              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);\n              if ((int)pppppppcVar36 < 1) {\n                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\n              else {\n                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&\n                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==\n                     (code *****)0x0 ||\n                    (iVar40 = (*pcStack_138)((*pppppppcVar25)\n                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,\n                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))\n                   )) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\nLAB_00025c9c:\n              if (ppppppcVar41 != (code ******)0x0) {\n                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];\n                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);\n                pppppppcStack_160 = pppppppcVar26;\n                pppppppcStack_15c = pppppppcVar31;\n                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);\n                if (iVar40 != 0) goto LAB_00025cfc;\n              }\n              iVar40 = (*pcStack_130)(&ppppppcStack_128);\n              if (iVar40 == 0) {\n                pppppppcVar6 = (code *******)0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);\n        }\n        pppppppcVar28 = &ppppppcStack_128;\n        pppppppcVar26 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);\n      } while ((pppppppcVar6 == (code *******)0x0) &&\n              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n  }\nLAB_00025e98:\n  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return pppppppcVar6;\n  }\n  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar47 = FUN_00025ee8;\n  pppppppcVar34 = pppppppcStack_11c;\n  (*pcVar46)();\n  pcStack_218 = pcVar46 + 0x201e8;\n  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);\n  pppppppcStack_204 = (code *******)0x0;\n  pppppppcVar34[3] = (code ******)pppppppcVar28;\n  pppppppcVar34[2] = (code ******)0x0;\n  pppppppcVar34[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;\n  pppppppcVar32 = (code *******)*pppppppcVar34;\n  pppppppcVar29 = pppppppcVar28;\n  pppppppcStack_198 = pppppppcVar31;\n  pppppppcStack_194 = pppppppcVar38;\n  pppppppcStack_190 = pppppppcVar25;\n  pppppppcStack_18c = pppppppcVar6;\n  pppppppcStack_188 = pppppppcVar36;\n  pppppppcStack_184 = pppppppcVar42;\n  pppppppcStack_180 = pppppppcVar43;\n  ppppppcStack_17c = ppppppcVar4;\n  pppppppcStack_178 = unaff_s8;\n  pcStack_174 = pcVar47;\n  if (pppppppcVar34[1] < (code ******)0x88) {\n    pppppppcVar38 = (code *******)0x88;\n    pppppppcVar36 = pppppppcVar27;\n    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);\n    if (pppppppcVar32 != (code *******)0x0) {\n      pppppppcVar34[1] = (code ******)0x88;\n      *pppppppcVar34 = (code ******)pppppppcVar32;\n      goto LAB_00025f80;\n    }\n    pppppppcVar31 = (code *******)0xc;\n  }\n  else {\nLAB_00025f80:\n    pppppppcVar34[2] = (code ******)0x88;\n    pppppppcVar36 = (code *******)0x88;\n    pppppppcVar38 = (code *******)0x0;\n    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);\n    pppppppcVar32[0x10] = (code ******)0x1f;\n    if (pppppppcVar27 < (code *******)0xaaaaaaa) {\n      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);\n      ppppppcVar4 = (code ******)\n                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);\n      *pppppppcVar32 = ppppppcVar4;\n      if (pppppppcVar27 == (code *******)0x0) {\n        pppppppcVar6 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar6 = (code *******)0x1;\n        do {\n          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);\n        } while (pppppppcVar6 <= pppppppcVar27);\n      }\n      pppppppcVar38 = pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);\n      pppppppcVar32[8] = ppppppcVar4;\n      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);\n      pppppppcVar32[0x11] = (code ******)pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();\n      pppppppcVar32[0x17] = ppppppcVar4;\n      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);\n      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&\n         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {\n        iVar40 = 3;\n        if (pbVar7[3] == 0x2d) {\n          iVar40 = 4;\n        }\n        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);\n        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);\n        if (iVar40 == 0) {\n          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;\n      if (1 < (int)pppppppcVar32[0x17]) {\n        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {\n          pppppppcVar38 = (code *******)0x1;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);\n          pppppppcVar32[0xf] = ppppppcVar4;\n          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;\n          pppppppcVar42 = (code *******)0x0;\n          unaff_s8 = (code *******)0x1;\n          do {\n            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);\n            uVar21 = 0;\n            do {\n              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);\n              if (pppppppcVar31 != (code *******)0xffffffff) {\n                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);\n                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =\n                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);\n              }\n              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {\n                *(byte *)(pppppppcVar32 + 0x16) =\n                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;\n              }\n              uVar21 = uVar21 + 1;\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n            } while (uVar21 != 0x20);\n            pppppppcVar42 = pppppppcVar42 + 1;\n            pppppppcVar43 = (code *******)0x20;\n          } while (pppppppcVar42 != (code *******)0x20);\n        }\n        else {\n          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);\n        }\n      }\n      if ((*pppppppcVar32 != (code ******)0x0) &&\n         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar43 = (code *******)pppppppcVar34[5];\n        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);\n        bVar19 = pppppppcVar42 != (code *******)0x0;\n        unaff_s8 = (code *******)(uint)bVar19;\n        pppppppcVar36 = (code *******)0x4c;\n        pppppppcVar38 = (code *******)0x0;\n        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);\n        if (pppppppcVar43 != (code *******)0x0) {\n          unaff_s8 = (code *******)0x1;\n        }\n        cStack_1a5 = (char)unaff_s8;\n        ppppppcStack_1a0 = pppppppcVar32[0x17];\n        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);\n        pppppppcStack_1f0 = pppppppcVar26;\n        pppppppcStack_1c4 = pppppppcVar27;\n        pppppppcStack_1c0 = pppppppcVar27;\n        pppppppcStack_1bc = pppppppcVar27;\n        pppppppcStack_1b8 = pppppppcVar27;\n        pppppppcStack_1b0 = pppppppcVar43;\n        uStack_1a8 = bVar19;\n        if (0 < (int)pppppppcVar27) {\n          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);\n          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          pppppppcVar26 = apppppppcStack_1ec[0];\n        }\n        apppppppcStack_1ec[0] = pppppppcVar26;\n        if (pppppppcVar42 == (code *******)0x0) {\n          if ((int)pppppppcVar32[0x17] < 2) {\n            if (pppppppcVar43 != (code *******)0x0) {\n              FUN_00018720();\n            }\n          }\n          else {\n            FUN_0001a644(&pppppppcStack_1f0);\n          }\n        }\n        else {\n          if (1 < (int)pppppppcVar32[0x17]) {\n            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);\n            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);\n            do {\n              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);\n              pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n              if (pppppppcVar25 != (code *******)0x0) break;\n              if (((int)pppppppcVar27 <= iStack_1d0) ||\n                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),\n                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;\n              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);\n            } while (pppppppcVar25 == (code *******)0x0);\n            goto LAB_000261b4;\n          }\n          FUN_0001a578(&pppppppcStack_1f0);\n        }\nLAB_000263f8:\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar34[6] = (code ******)0x0;\n        pppppppcVar43 = (code *******)*pppppppcVar34;\n        pppppppcVar43[0x20] = (code ******)pppppppcVar28;\n        pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);\n        pppppppcStack_21c = (code *******)&pppppppcStack_204;\n        uStack_220 = 0;\n        pppppppcVar38 = pppppppcVar34;\n        pppppppcVar6 = (code *******)\n                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);\n        pppppppcVar29 = (code *******)0x2;\n        if (pppppppcStack_204 == (code *******)0x0) {\n          pppppppcVar36 = (code *******)0x0;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar6 != (code *******)0x0) {\nLAB_000264d8:\n            pppppppcVar29 = (code *******)0x10;\n            pppppppcVar38 = pppppppcVar6;\n            pppppppcVar36 = pppppppcVar27;\n            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);\n          }\n          if ((pppppppcVar27 == (code *******)0x0) ||\n             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {\n            pppppppcStack_204 = (code *******)0xc;\n            goto LAB_0002671c;\n          }\n          pppppppcVar32[0xd] = (code ******)pppppppcVar31;\n          pppppppcVar27 = (code *******)*pppppppcVar34;\n          ppppppcVar4 = pppppppcVar27[1];\n          iVar40 = (int)ppppppcVar4 << 2;\n          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);\n          pppppppcVar27[3] = (code ******)pppppppcVar28;\n          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);\n          pppppppcVar27[4] = (code ******)pppppppcVar43;\n          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);\n          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[5] = (code ******)pppppppcVar26;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[6] = ppppppcVar4;\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar28 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar43 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar26 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (ppppppcVar4 == (code ******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else {\n            ppppppcVar4 = (code ******)\n                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);\n            pppppppcVar27[0x21] = ppppppcVar4;\n            if (ppppppcVar4 != (code ******)0x0) {\n              ppppppcVar4 = (code ******)0x0;\n              if (pppppppcVar34[6] != (code ******)0x0) {\n                do {\n                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;\n                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                } while (ppppppcVar4 < pppppppcVar34[6]);\n              }\n              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,\n                           pppppppcVar27);\n              ppppppcVar4 = pppppppcVar34[6];\n              if (ppppppcVar4 == (code ******)0x0) {\nLAB_0002672c:\n                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);\n                pppppppcVar27[0x21] = (code ******)0x0;\n              }\n              else {\n                ppppppcVar41 = pppppppcVar27[0x21];\n                if (*ppppppcVar41 == (code *****)0x0) {\n                  ppppppcVar39 = (code ******)0x0;\n                  do {\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                    if (ppppppcVar4 == ppppppcVar39) {\n                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;\n                      break;\n                    }\n                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);\n                }\n              }\n            }\n            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);\n            pppppppcVar25 =\n                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);\n            pppppppcVar36 = pppppppcVar27;\n            if (pppppppcVar25 == (code *******)0x0) {\n              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);\n              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);\n              if (pppppppcVar25 == (code *******)0x0) {\n                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);\n                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);\n                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);\n                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);\n                pppppppcVar25 = pppppppcVar26;\n                if (pppppppcVar26 == (code *******)0x0) {\n                  pppppppcVar43 = (code *******)0x0;\n                  unaff_s8 = &ppppppcStack_1fc;\n                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);\n                  pppppppcVar6 = (code *******)0x0;\n                  pcVar46 = pcStack_218;\nLAB_0002676c:\n                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {\nLAB_00026778:\n                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);\n                    pppppppcVar29 = (code *******)0x1;\n                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==\n                        (code *****)0x0) {\n                      pppppppcVar38 = pppppppcVar27;\n                      pppppppcVar36 = pppppppcVar6;\n                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);\n                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;\n                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);\n                      pcVar46 = pcStack_218;\n                      if (pppppppcVar28[1] == (code ******)0x0) {\n                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                        pppppppcVar43 = (code *******)0x1;\n                        pcVar46 = pcStack_218;\n                      }\n                    }\n                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n                    goto LAB_0002676c;\n                  }\n                  if (pppppppcVar43 != (code *******)0x0) {\n                    pppppppcVar43 = (code *******)0x0;\n                    pppppppcVar6 = (code *******)0x0;\n                    goto LAB_00026778;\n                  }\n                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&\n                      (pppppppcVar34[6] != (code ******)0x0)) &&\n                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  else {\n                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  ppppppcVar4 = (code ******)\n                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);\n                  pppppppcVar27[7] = ppppppcVar4;\n                  if (ppppppcVar4 == (code ******)0x0) {\n                    pppppppcVar25 = (code *******)0xc;\n                    goto LAB_000261b4;\n                  }\n                  pcVar46 = pcStack_218;\n                  if (pppppppcVar6 != (code *******)0x0) {\n                    iVar40 = 0;\n                    ppppppcVar4 = (code ******)0x0;\n                    do {\n                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);\n                      *pcVar47 = (code)0x0;\n                      pcVar47[1] = (code)0x0;\n                      pcVar47[2] = (code)0x0;\n                      pcVar47[3] = (code)0x0;\n                      pcVar47[4] = (code)0x0;\n                      pcVar47[5] = (code)0x0;\n                      pcVar47[6] = (code)0x0;\n                      pcVar47[7] = (code)0x0;\n                      pcVar47[8] = (code)0x0;\n                      pcVar47[9] = (code)0x0;\n                      pcVar47[10] = (code)0x0;\n                      pcVar47[0xb] = (code)0x0;\n                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                      iVar40 = iVar40 + 0xc;\n                    } while (ppppppcVar4 < pppppppcVar27[2]);\n                    if (pppppppcVar27[2] != (code ******)0x0) {\n                      unaff_s8 = (code *******)0x0;\n                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);\n                      pppppppcStack_210 = (code *******)0x0;\n                      do {\n                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))\n                        ;\n                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {\n                          pppppppcVar28 = (code *******)0x0;\n                          do {\n                            pppppppcVar38 = pppppppcStack_210;\n                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);\n                            pppppppcVar25 = (code *******)0xc;\n                            if (iVar40 == 0) goto LAB_000261b4;\n                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);\n                            pppppppcVar6 = pppppppcVar6 + 1;\n                            pcVar46 = pcStack_218;\n                          } while ((int)pppppppcVar28 <\n                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));\n                        }\n                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);\n                        unaff_s8 = unaff_s8 + 3;\n                      } while (pppppppcStack_210 < pppppppcVar27[2]);\n                    }\n                  }\nLAB_00026918:\n                  pppppppcStack_204 = (code *******)0x0;\n                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&\n                      (pppppppcVar42 == (code *******)0x0)) &&\n                     (pppppppcVar34[5] == (code ******)0x0)) {\n                    pppppppcVar6 = pppppppcVar43;\n                    if (pppppppcVar32[2] != (code ******)0x0) {\n                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);\n                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {\n                    \n                    \n                        pppppppcVar26 =\n                             (code *******)\n                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();\n                        return pppppppcVar26;\n                      }\n                      (**(code **)(pcVar46 + -0x7ea4))(0);\n                      if (pppppppcVar6 != (code *******)0x0) {\n                        pppppppcVar36 = (code *******)0x7;\n                        pppppppcVar26 = (code *******)0x0;\n                        do {\n                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;\n                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {\n                            if (*(char *)ppppppcVar4 < '\0') {\n                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);\n                            }\n                          }\n                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {\n                            *(char *)(ppppppcVar4 + 1) = '\a';\n                          }\n                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);\n                        } while (pppppppcVar26 < pppppppcVar32[2]);\n                      }\n                    }\n                    pppppppcVar32[0x17] = (code ******)0x1;\n                    if (0 < (int)pppppppcVar32[0x13]) {\n                      pppppppcVar6 = (code *******)0x1;\n                    }\n                    *(byte *)(pppppppcVar32 + 0x16) =\n                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |\n                         (byte)(((uint)pppppppcVar6 & 1) << 6);\n                  }\n                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];\n                  pppppppcVar32[0x12] = ppppppcVar4;\n                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);\n                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);\n                  pppppppcVar6 = pppppppcVar31;\n                  pppppppcStack_200 = pppppppcVar31;\n                  if (pppppppcVar31 == (code *******)0x0) {\n                    if ((0 < (int)pppppppcVar32[0x13]) &&\n                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {\n                      pppppppcVar42 = &ppppppcStack_1fc;\n                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);\n                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);\n                      pppppppcVar27 = (code *******)0x0;\n                      do {\n                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];\n                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);\n                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {\n                          iVar40 = 0;\n                          piVar8 = piStack_1f4;\n                          if (iStack_1f8 < 1) {\nLAB_00026bb4:\n                            if (iVar40 != iStack_1f8) {\n                              pppppppcVar26 =\n                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];\n                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);\n                              if (iVar40 == 0) {\n                                pppppppcVar38 =\n                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);\n                                pppppppcVar27 =\n                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);\n                                pppppppcVar6 = pppppppcVar27;\n                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;\n                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&\n                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;\n                              iVar40 = iVar40 + 1;\n                              piVar8 = piVar8 + 1;\n                            } while (iStack_1f8 != iVar40);\n                          }\n                        }\n                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                      } while ((int)pppppppcVar27 < iStack_1f8);\n                    }\n                    pppppppcVar29 = (code *******)0x0;\n                    pppppppcVar36 = &ppppppcStack_1fc;\n                    pppppppcVar38 = pppppppcVar32;\n                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);\n                    pppppppcVar32[9] = ppppppcVar4;\n                    pppppppcVar6 = pppppppcStack_200;\n                    if (ppppppcVar4 != (code ******)0x0) {\n                      pppppppcVar29 = (code *******)0x1;\n                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar32[10] = ppppppcVar4;\n                      }\n                      else {\n                        pppppppcVar42 = &ppppppcStack_1fc;\n                        pppppppcVar28 = (code *******)&pppppppcStack_200;\n                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);\n                        pppppppcVar32[10] = ppppppcVar4;\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar29 = (code *******)0x6;\n                        pppppppcVar38 = pppppppcVar32;\n                        pppppppcVar36 = pppppppcVar42;\n                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar6 = pppppppcStack_200;\n                        if (((pppppppcVar32[10] == (code ******)0x0) ||\n                            (pppppppcVar32[0xb] == (code ******)0x0)) ||\n                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                      pppppppcVar6 = pppppppcVar31;\n                    }\n                  }\nLAB_00026ce0:\n                  pppppppcStack_204 = pppppppcVar6;\n                  FUN_0001db98(pppppppcVar34);\n                  FUN_0001dc20(&pppppppcStack_1f0);\n                  pppppppcVar31 = pppppppcStack_204;\n                  if (pppppppcStack_204 != (code *******)0x0) {\n                    FUN_0001dc9c(pppppppcVar32);\n                    *pppppppcVar34 = (code ******)0x0;\n                    pppppppcVar34[1] = (code ******)0x0;\n                    pppppppcVar31 = pppppppcStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pppppppcVar36 = (code *******)0x0;\n          if (pppppppcVar6 != (code *******)0x0) {\n            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          pppppppcVar32[0xd] = (code ******)0x0;\n          pppppppcVar25 = pppppppcStack_204;\n        }\nLAB_000261b4:\n        pppppppcStack_204 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        FUN_0001db98(pppppppcVar34);\n        FUN_0001dc20(&pppppppcStack_1f0);\n        FUN_0001dc9c(pppppppcVar32);\n        *pppppppcVar34 = (code ******)0x0;\n        pppppppcVar34[1] = (code ******)0x0;\n        pppppppcVar31 = pppppppcStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    pppppppcStack_204 = (code *******)0xc;\n    FUN_0001dc9c(pppppppcVar32);\n    *pppppppcVar34 = (code ******)0x0;\n    pppppppcVar34[1] = (code ******)0x0;\n    pppppppcVar31 = pppppppcStack_204;\n  }\nLAB_00026d24:\n  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {\n    return pppppppcVar31;\n  }\n  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);\n  uVar48 = 0x26e9c;\n  pppppppcVar31 = pppppppcStack_19c;\n  (*pcVar46)();\n  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);\n  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);\n  pppppppcVar25 = pppppppcVar38;\n  pppppppcStack_258 = pppppppcVar32;\n  pppppppcStack_254 = pppppppcVar34;\n  pppppppcStack_250 = pppppppcVar27;\n  pppppppcStack_24c = pppppppcVar6;\n  pppppppcStack_248 = pppppppcVar28;\n  pppppppcStack_244 = pppppppcVar42;\n  pppppppcStack_240 = pppppppcVar43;\n  pppppppcStack_23c = pppppppcVar26;\n  pppppppcStack_238 = unaff_s8;\n  uStack_234 = uVar48;\n  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);\n  if (pppppppcStack_2ec == (code *******)0x0) {\n    pppppppcVar43 = (code *******)0x0;\n  }\n  else {\n    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;\n    pppppppcVar38[0xb] = (code ******)0x0;\n    pppppppcVar38[0xc] = (code ******)0x0;\n    pppppppcStack_2e4 = pppppppcStack_2ec;\n    FUN_0001a53c(appppppcStack_2bc);\n    pppppppcVar43 = pppppppcStack_300;\n    if ((int)pppppppcVar38[2] < 1) {\n      pppppppcVar27 = (code *******)0x0;\n    }\n    else {\n      pppppppcVar27 = (code *******)0x0;\n      pppppppcStack_2f4 = (code *******)0x0;\n      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;\n      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;\n      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;\n      do {\n        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);\n        pppppppcVar6 = (code *******)\n                       (*pppppppcVar31 +\n                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);\n        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);\n        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);\n        if (pppppppcVar26 == (code *******)0x1) {\n          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);\n          pppppppcVar43 = pppppppcStack_300;\nLAB_00026f88:\n          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;\n          if (((uint)pppppppcVar32 & 0x20) != 0) {\n            pppppppcVar34 = appppppcStack_2bc;\n            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);\n            FUN_0001a53c(pppppppcVar34);\n            pppppppcVar43 = pppppppcStack_300;\n            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;\n            FUN_00018540(appppppcStack_2bc,10);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n          if (((uint)pppppppcVar32 & 0x80) == 0) {\n            if (((uint)pppppppcVar32 & 4) == 0) {\nLAB_0002700c:\n              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);\n              if (pppppppcVar32 == (code *******)0x0) {\nLAB_00027078:\n                if ((int)pppppppcVar27 < 1) {\n                  pppppppcVar34 = (code *******)0x0;\n                }\n                else {\n                  pppppppcVar32 = pppppppcStack_2ec + 0x300;\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];\n                  pppppppcVar42 = pppppppcStack_2ec;\n                  do {\n                    if ((pppppppcVar26 != (code *******)0x1) ||\n                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),\n                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {\n                      pppppppcVar37 = appppppcStack_2bc;\n                      uVar21 = 0;\n                      pppppppcVar25 = pppppppcVar37;\n                      pppppppcVar36 = pppppppcVar32;\n                      pppppppcVar29 = appppppcStack_2bc + 8;\n                      do {\n                        ppppppcVar4 = *pppppppcVar25;\n                        ppppppcVar41 = *pppppppcVar36;\n                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);\n                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;\n                        pppppppcVar25 = pppppppcVar25 + 1;\n                        pppppppcVar36 = pppppppcVar36 + 1;\n                        pppppppcVar29 = pppppppcVar29 + 1;\n                      } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                      if (uVar21 != 0) {\n                        pppppppcVar36 = appppppcStack_27c;\n                        pppppppcVar28 = (code *******)0x0;\n                        uVar21 = 0;\n                        pppppppcVar43 = pppppppcVar32;\n                        do {\n                          pppppppcVar29 = (code *******)*pppppppcVar37;\n                          ppppppcVar4 = *pppppppcVar43;\n                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);\n                          *pppppppcVar36 = ppppppcVar41;\n                          uVar21 = uVar21 | (uint)ppppppcVar41;\n                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);\n                          *pppppppcVar37 = ppppppcVar4;\n                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);\n                          pppppppcVar37 = pppppppcVar37 + 1;\n                          pppppppcVar43 = pppppppcVar43 + 1;\n                          pppppppcVar36 = pppppppcVar36 + 1;\n                        } while (pppppppcVar43 != pppppppcVar32 + 8);\n                        if (uVar21 != 0) {\n                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                          *pppppppcVar43 = appppppcStack_27c[0];\n                          pppppppcVar43[1] = appppppcStack_27c[1];\n                          pppppppcVar43[2] = appppppcStack_27c[2];\n                          pppppppcVar43[3] = appppppcStack_27c[3];\n                          pppppppcVar43[4] = ppppppcStack_26c;\n                          pppppppcVar43[5] = ppppppcStack_268;\n                          pppppppcVar43[6] = ppppppcStack_264;\n                          pppppppcVar43[7] = ppppppcStack_260;\n                          *pppppppcVar32 = appppppcStack_2bc[8];\n                          pppppppcVar32[1] = appppppcStack_2bc[9];\n                          pppppppcVar32[2] = appppppcStack_2bc[10];\n                          pppppppcVar32[3] = appppppcStack_2bc[0xb];\n                          pppppppcVar32[4] = ppppppcStack_28c;\n                          pppppppcVar32[5] = ppppppcStack_288;\n                          pppppppcVar32[6] = ppppppcStack_284;\n                          pppppppcVar32[7] = ppppppcStack_280;\n                          iVar40 = (*(code *)ppppppcStack_2dc)\n                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                              pppppppcVar42);\n                          if (iVar40 != 0) goto LAB_000275d4;\n                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                        }\n                        iVar40 = (*(code *)ppppppcStack_2e8)\n                                           (pppppppcVar42,\n                                            *(undefined4 *)\n                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                        if (iVar40 == 0) goto LAB_000275d4;\n                        pppppppcVar43 = pppppppcStack_300;\n                        if (pppppppcVar28 == (code *******)0x0) break;\n                      }\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar32 = pppppppcVar32 + 8;\n                    pppppppcVar42 = pppppppcVar42 + 3;\n                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);\n                }\n                if (pppppppcVar27 == pppppppcVar34) {\n                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                  *pppppppcVar43 = appppppcStack_2bc[0];\n                  pppppppcVar43[1] = appppppcStack_2bc[1];\n                  pppppppcVar43[2] = appppppcStack_2bc[2];\n                  pppppppcVar43[3] = appppppcStack_2bc[3];\n                  pppppppcVar43[4] = appppppcStack_2bc[4];\n                  pppppppcVar43[5] = appppppcStack_2bc[5];\n                  pppppppcVar43[6] = appppppcStack_2bc[6];\n                  pppppppcVar43[7] = appppppcStack_2bc[7];\n                  iVar40 = (*(code *)ppppppcStack_2d8)\n                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                      *(undefined4 *)\n                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                  if (iVar40 != 0) {\nLAB_000275d4:\n                    if ((int)pppppppcVar27 < 1) {\n                      pppppppcVar27 = (code *******)0xffffffff;\n                      pppppppcVar43 = pppppppcStack_300;\n                    }\n                    else {\n                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n                      pppppppcVar32 = pppppppcStack_2ec;\n                      do {\n                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n                        pppppppcVar32 = pppppppcVar32 + 3;\n                        pppppppcVar27 = (code *******)0xffffffff;\n                        pppppppcVar43 = pppppppcStack_300;\n                      } while (pppppppcVar32 != pppppppcVar34);\n                    }\n                    goto LAB_00027610;\n                  }\n                  FUN_0001a53c(appppppcStack_2bc);\n                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                  pppppppcVar43 = pppppppcStack_300;\n                }\n              }\n              else if ((pppppppcVar26 == (code *******)0x1) &&\n                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {\n                FUN_0001a53c(appppppcStack_2bc);\n                pppppppcVar43 = pppppppcStack_300;\n              }\n              else {\n                pppppppcVar25 = appppppcStack_2bc;\n                if ((int)pppppppcVar31[0x17] < 2) {\n                  pppppppcVar37 = pppppppcVar31 + 0x18;\n                  pppppppcVar29 = appppppcStack_2bc + 8;\n                  uVar21 = 0;\n                  do {\n                    ppppppcVar4 = *pppppppcVar37;\n                    pppppppcVar36 = (code *******)*pppppppcVar25;\n                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);\n                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar37 = pppppppcVar37 + 1;\n                  } while (pppppppcVar25 != pppppppcVar29);\n                }\n                else {\n                  pppppppcVar36 = pppppppcVar31 + 0x18;\n                  ppppppcVar4 = pppppppcVar31[0xf];\n                  uVar21 = 0;\n                  do {\n                    pppppppcVar29 = (code *******)*pppppppcVar25;\n                    ppppppcVar41 = (code ******)\n                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &\n                                   (uint)pppppppcVar29);\n                    *pppppppcVar25 = ppppppcVar41;\n                    uVar21 = uVar21 | (uint)ppppppcVar41;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar36 = pppppppcVar36 + 1;\n                    ppppppcVar4 = ppppppcVar4 + 1;\n                  } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                }\n                if (uVar21 != 0) goto LAB_00027078;\n              }\n            }\n            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))\n            {\n              FUN_0001a53c(appppppcStack_2bc);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            else {\n              ppppppcVar4 = (code ******)appppppcStack_2bc;\n              if ((int)pppppppcVar31[0x17] < 2) {\n                pppppppcVar25 = appppppcStack_2bc;\n                pppppppcVar37 = pppppppcVar31 + 0x18;\n                pppppppcVar29 = appppppcStack_2bc + 8;\n                uVar21 = 0;\n                do {\n                  ppppppcVar4 = *pppppppcVar25;\n                  pppppppcVar36 = (code *******)*pppppppcVar37;\n                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);\n                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;\n                  pppppppcVar25 = pppppppcVar25 + 1;\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (pppppppcVar25 != pppppppcVar29);\n              }\n              else {\n                pppppppcVar36 = pppppppcVar31 + 0x18;\n                ppppppcVar41 = pppppppcVar31[0xf];\n                uVar21 = 0;\n                do {\n                  pppppppcVar29 = (code *******)*ppppppcVar4;\n                  pppppcVar5 = (code *****)\n                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)\n                  ;\n                  *ppppppcVar4 = pppppcVar5;\n                  uVar21 = uVar21 | (uint)pppppcVar5;\n                  ppppppcVar4 = ppppppcVar4 + 1;\n                  pppppppcVar36 = pppppppcVar36 + 1;\n                  ppppppcVar41 = ppppppcVar41 + 1;\n                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);\n              }\n              if (uVar21 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            FUN_0001a53c(appppppcStack_2bc);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n        }\n        else {\n          if (pppppppcVar26 == (code *******)0x3) {\n            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);\n            pppppppcVar43 = pppppppcStack_300;\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)&DAT_00000005) {\n            if ((int)pppppppcVar31[0x17] < 2) {\n              appppppcStack_2bc[0] = (code ******)0xffffffff;\n              appppppcStack_2bc[1] = (code ******)0xffffffff;\n              appppppcStack_2bc[2] = (code ******)0xffffffff;\n              appppppcStack_2bc[3] = (code ******)0xffffffff;\n              appppppcStack_2bc[4] = (code ******)0xffffffff;\n              appppppcStack_2bc[5] = (code ******)0xffffffff;\n              appppppcStack_2bc[6] = (code ******)0xffffffff;\n              appppppcStack_2bc[7] = (code ******)0xffffffff;\n            }\n            else {\n              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)0x7) {\n            appppppcStack_2bc[0] = (code ******)0xffffffff;\n            appppppcStack_2bc[1] = (code ******)0xffffffff;\n            appppppcStack_2bc[2] = (code ******)0xffffffff;\n            appppppcStack_2bc[3] = (code ******)0xffffffff;\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)0xfffffbff;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);\n      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);\n      if (0 < (int)pppppppcVar27) {\n        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);\n        pppppppcStack_2cc = pppppppcStack_2f8;\n        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))\n        {\n          iStack_2d4 = (int)pppppppcVar27 * 0xc;\n          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);\n          if (pppppppcStack_2f0 != (code *******)0x0) {\n            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;\n            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;\n            FUN_0001a53c(appppppcStack_27c);\n            pppppppcVar42 = pppppppcStack_2ec + 1;\n            pppppppcStack_2f4 = pppppppcStack_2f8;\n            ppppppcStack_2d8 = (code ******)0x0;\n            pppppppcVar28 = &ppppppcStack_2c8;\n            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);\n            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;\n            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;\n            do {\n              uStack_2c4 = 0;\n              if (0 < (int)*pppppppcVar42) {\n                pppppppcVar6 = (code *******)0xffffffff;\n                pppppppcVar43 = pppppppcStack_2f8;\n                do {\n                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=\n                      (code *****)0xffffffff) {\n                    pppppppcVar25 =\n                         (code *******)\n                         (pppppppcVar31[6] +\n                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);\n                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);\n                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;\n                  }\n                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n                  pppppppcVar29 = (code *******)0x0;\n                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);\n              }\n              pppppppcVar29 = (code *******)0x0;\n              pppppppcVar25 = pppppppcVar31;\n              pppppppcVar36 = pppppppcVar28;\n              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n              pppppppcVar43 = pppppppcStack_2f4;\n              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;\n              *pppppppcVar6 = ppppppcVar4;\n              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                goto LAB_00027798;\n              }\n              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;\n                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;\n              }\n              else {\n                pppppppcVar29 = (code *******)0x1;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                  goto LAB_00027798;\n                }\n                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {\n                  ppppppcStack_2d8 = (code ******)0x1;\n                }\n                pppppppcVar29 = (code *******)0x2;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) &&\n                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))\n                goto LAB_00027794;\n              }\n              pppppppcVar32 = pppppppcStack_2ec;\n              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);\n              (*(code *)ppppppcStack_2dc)\n                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);\n              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n              pppppppcVar42 = pppppppcVar42 + 3;\n            } while (pppppppcStack_2f4 != pppppppcVar27);\n            pppppppcVar25 = (code *******)0x100;\n            if (ppppppcStack_2d8 == (code ******)0x0) {\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xb] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) {\nLAB_00027794:\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                pppppppcVar43 = pppppppcVar6;\nLAB_00027798:\n                (*(code *)ppppppcVar4)(pppppppcStack_2f0);\n                pppppppcVar6 = pppppppcVar43;\n                goto LAB_000277a4;\n              }\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar31 = pppppppcVar31 + 0x18;\n              pppppppcVar25 = (code *******)0x0;\n              pppppppcVar43 = pppppppcVar32;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                pppppppcVar29 = pppppppcVar25;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar36 = pppppppcStack_2f8;\n                      pppppppcVar34 = pppppppcVar43;\n                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {\n                        do {\n                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);\n                          pppppppcVar37 = pppppppcVar34 + 0x308;\n                          pppppppcVar34 = pppppppcVar34 + 8;\n                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);\n                      }\n                      else {\n                        pppppppcVar36 = (code *******)0x0;\n                      }\n                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2f0;\n                      }\n                      else {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2e4;\n                      }\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 8;\n                pppppppcVar31 = pppppppcVar31 + 1;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar25 != (code *******)0x100);\n            }\n            else {\n              pppppppcVar25 = (code *******)0x200;\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xc] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar25 = pppppppcVar28;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  pppppppcVar29 = pppppppcVar25;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar34 = (code *******)0x0;\n                      ppppppcVar41 = pppppppcVar43[0x300];\n                      pppppppcVar37 = pppppppcVar43;\n                      pppppppcVar2 = pppppppcStack_2f8;\n                      while ((uVar21 & (uint)ppppppcVar41) == 0) {\n                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);\n                        pppppppcVar36 = pppppppcVar37 + 8;\n                        ppppppcVar41 = pppppppcVar37[0x308];\n                        pppppppcVar37 = pppppppcVar36;\n                        pppppppcVar2 = pppppppcVar34;\n                      }\n                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];\n                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = pppppppcVar29 + 1;\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 0x20;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar28 + 0x100 != pppppppcVar25);\n            }\n            pppppppcVar25 = (code *******)0xa;\n            iVar40 = FUN_00018598(appppppcStack_27c);\n            if (iVar40 != 0) {\n              pppppppcVar43 = pppppppcStack_2ec + 0x300;\n              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);\n              do {\n                pppppppcVar42 = pppppppcStack_2f8;\n                pppppppcVar25 = (code *******)0xa;\n                iVar40 = FUN_00018598(pppppppcVar43);\n                if (iVar40 != 0) {\n                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];\n                  pppppppcVar28[10] = ppppppcVar4;\n                  if (ppppppcStack_2d8 != (code ******)0x0) {\n                    pppppppcVar28[0x10a] = ppppppcVar4;\n                  }\n                  break;\n                }\n                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);\n                pppppppcVar43 = pppppppcVar43 + 8;\n              } while (pppppppcStack_2f8 != pppppppcVar27);\n            }\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);\n            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);\n            do {\n              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n              pppppppcVar32 = pppppppcVar32 + 3;\n            } while (pppppppcVar34 != pppppppcVar32);\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n            pppppppcVar43 = (code *******)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n        pppppppcVar32 = pppppppcStack_2ec;\n        do {\n          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n          pppppppcVar32 = pppppppcVar32 + 3;\n        } while (pppppppcVar32 != pppppppcVar34);\n        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n        pppppppcVar43 = (code *******)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);\n    pppppppcVar25 = (code *******)0x100;\n    if (pppppppcVar27 == (code *******)0x0) {\n      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n      pppppppcVar38[0xb] = ppppppcVar4;\n      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);\n    }\n    else {\n      pppppppcVar43 = (code *******)0x0;\n    }\n  }\nLAB_00027804:\n  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {\n    return pppppppcVar43;\n  }\n  ppppppcVar4 = pppppppcStack_300[-0x1f77];\n  pcVar46 = FUN_00027cb0;\n  pppppppcVar22 = pppppppcStack_25c;\n  (*(code *)ppppppcVar4)();\n  pppppppcVar2 = pppppppcStack_2f4;\n  pppppppcVar37 = pppppppcStack_300;\n  ppppcStack_33c = *ppppppcVar4[0x5999];\n  pppppppcVar44 = (code *******)*pppppppcVar22;\n  pppppppcVar43 = (code *******)0x0;\n  pppppppcStack_338 = pppppppcVar32;\n  pppppppcStack_334 = pppppppcVar34;\n  pppppppcStack_330 = pppppppcVar27;\n  pppppppcStack_32c = pppppppcVar6;\n  pppppppcStack_328 = pppppppcVar28;\n  pppppppcStack_324 = pppppppcVar42;\n  pppppppcStack_320 = pppppppcVar31;\n  pppppppcStack_31c = pppppppcVar26;\n  pppppppcStack_318 = pppppppcVar38;\n  pcStack_314 = pcVar46;\n  pppppppcStack_308 = pppppppcVar36;\n  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);\n  ppppppcStack_458 = pppppppcVar22[4];\n  if (ppppppcStack_458 != (code ******)0x0) {\n    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if (pppppppcVar29 == pppppppcVar37) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n  }\n  if (pppppppcVar22[6] < pppppppcStack_2f8) {\n    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));\n  }\n  else {\n    pcStack_428 = (code *)0x0;\n  }\n  pppppppcStack_370 = pppppppcVar44;\n  if (pppppppcVar22[2] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[9] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[10] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[0xb] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar43 = (code *******)pppppppcVar44[0xc];\n  if (pppppppcVar43 == (code *******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar26 = pppppppcVar37;\n  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&\n      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))\n     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&\n         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,\n         pppppppcVar37 != (code *******)0x0)))) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);\n  if (pppppppcVar6 == (code *******)0x0) {\n    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;\n  }\n  else {\n    bVar19 = true;\n  }\n  ppppppcVar41 = pppppppcVar22[5];\n  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);\n  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];\n  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);\n  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {\n    pppppppcVar36 = pppppppcStack_374;\n  }\n  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);\n  pppppppcStack_394 = pppppppcStack_308;\n  pppppppcStack_398 = pppppppcStack_308;\n  bStack_379 = bStack_37c;\n  if (ppppppcVar41 != (code ******)0x0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);\n  pppppppcStack_38c = pppppppcStack_308;\n  pppppppcStack_390 = pppppppcStack_308;\n  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);\n  if (pppppppcVar38 == (code *******)0x0) {\n    pppppppcVar43 = pppppppcVar36;\n  }\n  pppppppcStack_3c4 = pppppppcVar25;\n  ppppppcStack_384 = ppppppcVar41;\n  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);\n  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n  pppppppcStack_380 = pppppppcVar44 + 0x18;\n  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);\n  pppppppcVar36 = (code *******)0x0;\n  pppppppcStack_3a8 = pppppppcVar36;\n  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {\n    pppppppcStack_3a8 = pppppppcStack_308;\n  }\n  pppppppcStack_38c = pppppppcStack_2fc;\n  pppppppcStack_390 = pppppppcStack_2fc;\n  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);\n  ppppppcVar39 = pppppppcVar44[0x13];\n  uVar21 = (int)ppppppcVar39 * 2;\n  pppppppcStack_36c = pppppppcStack_2f0;\n  pppppppcStack_368 = (code *******)0xffffffff;\n  pppppppcStack_3a4 = pppppppcStack_3a8;\n  if ((int)uVar21 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar21;\n    uStack_344 = uVar21;\n    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {\n      pppppppcStack_360 = (code *******)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if (((uint)pppppppcStack_2f0 & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar40 = 1;\n      pppppppcVar31 = pppppppcVar29;\n      if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n        iVar40 = -1;\n        pppppppcVar31 = pppppppcVar26;\n      }\n      pppppppcVar28 = pppppppcVar26;\n      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {\n        pppppppcVar28 = pppppppcVar29;\n      }\n      ppppppcVar39 = pppppppcVar44[0x17];\n      uVar21 = 8;\n      if (ppppppcStack_458 != (code ******)0x0) {\n        if (ppppppcVar39 == (code ******)0x1) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        pppppppcVar43 = (code *******)0x0;\n        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {\n          pppppppcVar43 = (code *******)0x2;\n        }\n        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |\n                 (uint)pppppppcVar43;\n      }\n      pppppppcStack_3ec = pppppppcVar29;\n      if ((int)pppppppcVar29 < (int)pppppppcVar31) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar36 = (code *******)&pppppppcStack_3ec;\n        if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n          pppppppcVar36 = (code *******)0x0;\n        }\n        pppppcVar5 = ppppppcVar4[0x594e];\n        pppppcVar9 = ppppppcVar4[0x5916];\nLAB_000291e4:\n        pppppppcVar26 = pppppppcStack_308;\n        if (uVar21 - 4 < 5) {\n                    \n                    \n          pppppppcVar26 =\n               (code *******)\n               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();\n          return pppppppcVar26;\n        }\n        while( true ) {\n          pppppppcVar27 = pppppppcStack_3ec;\n          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);\n          pppppppcVar38 = pppppppcStack_2f0;\n          if (pppppppcStack_3a4 <= pppppppcVar42) {\n            pppppppcVar43 = pppppppcStack_3ec;\n            pppppppcStack_460 =\n                 (code *******)\n                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);\n          }\n          if ((int)pppppppcVar27 < (int)pppppppcVar26) {\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);\n          }\n          else {\n            uVar10 = 0;\n          }\n          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);\n          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;\n          pppppppcStack_3ec = pppppppcVar27;\n          if ((int)pppppppcVar27 < (int)pppppppcVar31) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n          if ((int)pppppppcVar28 < (int)pppppppcVar27) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          pppppppcVar43 = pppppppcStack_3ec;\n          pppppppcVar38 = pppppppcStack_2f0;\n          pppppppcVar42 =\n               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n          pppppppcVar27 = pppppppcStack_370;\n          pppppppcVar26 = pppppppcStack_39c;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;\n          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          pppppppcStack_35c = (code *******)0x0;\n          pppppppcStack_448 = pppppppcStack_39c;\n          pppppppcStack_3e8 = (code *******)0x0;\n          pppppppcVar32 = (code *******)pppppppcStack_370[9];\n          pppppppcVar38 = pppppppcStack_36c;\n          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;\n          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n          if ((uVar10 & 1) == 0) {\n            if (uVar10 == 0) break;\n            if ((uVar10 & 6) == 6) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xc];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 2) != 0) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xb];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 4) == 0) break;\n            pppppppcVar38 = (code *******)pppppppcVar32[10];\n            pppppppcVar43 = pppppppcVar27;\n            pppppppcVar32 =\n                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);\n            if (pppppppcVar32 != (code *******)0x0) break;\n            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n            pppppcVar30 = ppppppcVar4[0x5916];\n          }\n          else {\n            pppppppcVar32 = (code *******)pppppppcVar27[10];\nLAB_000283bc:\n            pppppcVar30 = ppppppcVar4[0x5916];\n            if (pppppppcVar32 != (code *******)0x0) break;\n          }\n          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n          pppppppcStack_3ec =\n               (code *******)\n               (*(code *)ppppppcVar4[0x595c])\n                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);\n          if (pppppppcStack_3ec == pppppppcVar28) {\n            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {\n              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);\n            }\n            else {\n              uVar10 = 0;\n            }\n            if (ppppppcVar41 != (code ******)0x0) {\n              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);\n            }\n            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {\n              pppppppcStack_460 = (code *******)0x1;\n              pppppppcVar38 = pppppppcStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar1 = pppppppcVar36 != (code *******)0x0;\n        if ((pppppppcStack_360 == (code *******)0x0) ||\n           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,\n           pppppppcVar27[0x13] == (code ******)0x0)) {\nLAB_000283f0:\n          if ((int)pppppppcVar32[0xd] << 4 < 0) {\n            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||\n               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,\n               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {\n              pppppppcVar27 = pppppppcVar26;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n            }\n            else {\n              pppppppcVar26 = (code *******)0xffffffff;\n              pppppppcVar27 = (code *******)0x0;\n            }\n          }\n          else {\n            pppppppcVar26 = (code *******)0xffffffff;\n            pppppppcVar27 = (code *******)0x0;\n          }\n          pppppcVar30 = ppppppcVar4[0x594e];\n          pppppcVar11 = ppppppcVar4[0x594e];\n          pppppcVar12 = ppppppcVar4[0x594e];\n          pppppppcStack_454 = pppppppcVar36;\n          while( true ) {\n            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);\n            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);\n            pppppppcVar43 = pppppppcStack_39c;\n            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;\n            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&\n               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;\n            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {\n              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {\nLAB_00028534:\n                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);\n                pppppppcStack_3e8 =\n                     (code *******)\n                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);\n                if (pppppppcStack_3e8 == (code *******)0x0) break;\n                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n                pppppppcVar38 = (code *******)0x468;\n                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n                uVar49 = (*(code *)ppppppcVar4[0x595c])\n                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,\n                                    ppppppcVar4[0x5916] + -0xcf0);\n                pppppppcVar27 = pppppppcVar44;\n              }\n            }\n            pppppppcVar29 = pppppppcStack_370;\n            if ((int)pppppppcVar32[0xd] << 5 < 0) {\n              if (0 < (int)pppppppcVar32[2]) {\n                pppppcVar35 = ppppppcVar4[0x594e];\n                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;\n                iVar17 = 0;\n                do {\n                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];\n                  ppppppcVar18 = *pppppppcVar29;\n                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];\n                  if (((uint)pppppcVar15 & 0x800) != 0) {\n                    if (((uint)pppppcVar15 & 0xffc000) != 0) {\n                      pppppppcVar43 = pppppppcStack_39c;\n                      uVar16 = (*(code *)pppppcVar13)\n                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);\n                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;\n                      if ((uVar10 & 4) == 0) {\n                        uVar23 = uVar16 & 1;\n                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar23 = uVar10 & 8;\n                        if ((uVar16 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar23 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||\n                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;\n                    pppppppcVar43 = pppppppcVar37;\n                    iVar14 = (*(code *)(pppppcVar12 + -0x218))\n                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)\n                    ;\n                    if (iVar14 != 0) {\n                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);\n                      if (iVar14 <= iStack_34c) {\n                        iVar14 = iStack_34c;\n                      }\n                      pppppppcVar43 = pppppppcVar33;\n                      iStack_34c = iVar14;\n                      pppppppcStack_3e4 =\n                           (code *******)\n                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);\n                      pppppppcVar3 = pppppppcStack_3e4;\n                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                      pppppppcVar38 =\n                           (code *******)\n                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);\n                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                      ppppppcVar18 = *pppppppcVar37;\n                      if (ppppppcVar18 == (code ******)0x0) {\n                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;\n                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];\n                        ppppppcStack_3d8 = pppppppcVar38[2];\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                      }\n                      else {\n                        pppppppcVar43 = (code *******)ppppppcVar18[10];\n                        pppppppcStack_3e4 =\n                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);\n                        pppppppcVar3 = pppppppcStack_3e4;\n                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);\n                      }\n                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&\n                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))\n                      goto LAB_000294e4;\n                    }\n                  }\nLAB_00028744:\n                  iVar17 = iVar17 + 1;\n                } while (iVar17 < (int)pppppppcVar32[2]);\n              }\n              pppppppcStack_3e8 = (code *******)0x0;\n            }\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);\n            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n            do {\n              if (pppppppcVar32[0xb] != (code ******)0x0) {\n                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];\nLAB_00028a40:\n                pppppppcVar29 = pppppppcVar38;\n                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;\n                goto LAB_00028a6c;\n              }\n              ppppppcVar18 = pppppppcVar32[0xc];\n              if (ppppppcVar18 != (code ******)0x0) {\n                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n                if ((uVar16 & 1) == 0) {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];\n                }\n                else {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];\n                }\n                goto LAB_00028a40;\n              }\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar38 = pppppppcStack_36c;\n              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);\n            } while (iVar17 != 0);\n            pppppppcStack_3e8 = (code *******)0xc;\n            pppppppcVar3 = pppppppcStack_3e8;\nLAB_000294e4:\n            pppppppcStack_3e8 = pppppppcVar3;\n            if (pppppppcStack_360 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              break;\n            }\n            pppppppcVar38 = (code *******)0x0;\nLAB_00028a4c:\n            pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n            pppppppcVar29 = (code *******)FUN_00024f5c(&pppppppcStack_3e8,pppppppcVar43);\nLAB_00028a6c:\n            if (pppppppcVar29 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              if ((pppppppcStack_360 == (code *******)0x0) ||\n                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;\n              pppppcVar35 = ppppppcVar4[0x594e];\n              do {\n                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;\n                pppppppcVar29 = pppppppcStack_39c;\n                do {\n                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  pppppppcVar43 = pppppppcStack_35c;\n                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;\n                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (*pppppppcVar37 == (code ******)0x0);\n                pppppppcVar38 = (code *******)0x0;\n                pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n                pppppppcVar29 =\n                     (code *******)\n                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);\n                if (pppppppcStack_3e8 != (code *******)0x0) {\n                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;\n                  break;\n                }\n                pppppppcVar43 = pppppppcStack_35c;\n              } while (pppppppcVar29 == (code *******)0x0);\n            }\n            pppppppcVar37 = pppppppcStack_448;\n            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {\n              bVar1 = false;\n              pppppppcVar37 = pppppppcStack_448;\n            }\n            pppppppcStack_448 = pppppppcVar37;\n            pppppppcVar32 = pppppppcVar29;\n            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&\n               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||\n                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,\n                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {\n              pppppppcVar27 = pppppppcStack_39c;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n              pppppppcStack_454 = (code *******)0x0;\n              pppppppcVar26 = pppppppcStack_39c;\n            }\n          }\nLAB_00029448:\n          pppppppcVar27 = pppppppcVar26;\n          if (pppppppcStack_454 != (code *******)0x0) {\n            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);\n          }\n        }\n        else {\n          pppppppcVar34 = pppppppcVar32 + 1;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar43 = pppppppcVar34;\n          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);\n          pppppppcVar27 = pppppppcStack_3e8;\n          if (pppppppcStack_3e8 == (code *******)0x0) {\n            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {\n              pppppppcVar43 = pppppppcVar34;\n              bVar1 = false;\n            }\n            else {\n              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);\n              pppppppcVar43 = pppppppcVar34;\n              pppppppcVar27 = pppppppcStack_3e8;\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;\n              bVar1 = false;\n            }\n            goto LAB_000283f0;\n          }\n        }\nLAB_0002945c:\n        if (pppppppcVar27 == (code *******)0xffffffff) {\nLAB_000291a4:\n          FUN_0001e14c(&pppppppcStack_3c4);\nLAB_000291bc:\n          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);\n          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;\n          pppppppcStack_460 = (code *******)0x1;\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {\n          pppppppcStack_460 = (code *******)0xc;\n          goto LAB_00028e84;\n        }\n        pppppppcStack_368 = pppppppcVar27;\n        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {\n          if (pppppppcVar6 < (code *******)0x2) {\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          else {\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          if (pppppppcVar6 < (code *******)0x2) {\nLAB_0002930c:\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;\n          }\n          else {\n            cVar20 = *(code *)(pppppppcVar44 + 0x16);\nLAB_000292c0:\n            if (-1 < (char)cVar20) goto LAB_0002930c;\n          }\n          ppppppcVar18 = ppppppcStack_364;\n          pppppppcVar26 = pppppppcStack_370;\n          if (pppppppcVar27 < (code *******)0x3fffffff) {\n            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;\n            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n            if (pppppppcVar32 == (code *******)0x0) {\nLAB_0002923c:\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              pppppppcStack_460 = (code *******)0xc;\n            }\n            else {\n              pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n              if (pppppppcVar26[0x13] == (code ******)0x0) {\n                pppppppcStack_3dc = (code *******)0x0;\n                ppppppcStack_3d8 = ppppppcVar18;\n                uStack_3d0 = 0;\n                uStack_3cc = 0;\n                uStack_3c8 = 0;\n                pppppppcStack_3e0 = pppppppcVar32;\n                pppppppcStack_3d4 = pppppppcVar27;\n                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);\n                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                if (pppppppcStack_460 == (code *******)0x0) {\n                  if (*pppppppcVar32 == (code ******)0x0) {\n                    pppppppcVar34 = (code *******)0x0;\nLAB_00029210:\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    goto LAB_000291a4;\n                  }\nLAB_00028bc8:\n                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n                  pppppppcStack_368 = pppppppcVar27;\n                  ppppppcStack_364 = ppppppcVar18;\n                  pppppppcStack_360 = pppppppcVar32;\n                  goto LAB_00028be8;\n                }\nLAB_0002916c:\n                pppppppcVar34 = (code *******)0x0;\n              }\n              else {\n                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;\n                pppppcVar30 = ppppppcVar4[0x594e];\n                pppppcVar11 = ppppppcVar4[0x594e];\n                while( true ) {\n                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);\n                  pppppppcVar38 = pppppppcVar29;\n                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);\n                  uStack_3d0 = 0;\n                  uStack_3cc = 0;\n                  uStack_3c8 = 0;\n                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n                  pppppppcStack_3e0 = pppppppcVar32;\n                  pppppppcStack_3dc = pppppppcVar34;\n                  ppppppcStack_3d8 = ppppppcVar18;\n                  pppppppcStack_3d4 = pppppppcVar27;\n                  pppppppcStack_460 =\n                       (code *******)\n                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);\n                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                  if (pppppppcStack_460 != (code *******)0x0) break;\n                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))\n                  {\n                    pppppppcVar43 = pppppppcVar32;\n                    pppppppcVar38 = pppppppcVar34;\n                    pppppppcStack_460 =\n                         (code *******)\n                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,\n                                      (code *)((int)pppppppcVar27 + 1));\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;\n                    goto LAB_00028bc8;\n                  }\n                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));\n                  do {\n                    while( true ) {\n                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);\n                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;\n                      pppppppcVar43 = *(code ********)(pcVar46 + -4);\n                      if (pppppppcVar43 != (code *******)0x0) break;\n                      pcVar46 = pcVar46 + -4;\n                    }\n                    pcVar46 = pcVar46 + -4;\n                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);\n                  ppppppcVar18 = (code ******)\n                                 (*(code *)(pppppcVar11 + -0x108d))\n                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);\n                }\n              }\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;\n            }\n          }\n          else {\n            pppppppcStack_460 = (code *******)0xc;\n          }\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar44[0x13] != (code ******)0x0) {\n          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n          pppppppcVar38 = pppppppcVar27;\n          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          goto LAB_0002930c;\n        }\nLAB_000292a8:\n        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {\n          cVar20 = *(code *)(pppppppcVar44 + 0x16);\n          goto LAB_000292c0;\n        }\nLAB_00028be8:\n        pppppppcStack_460 = pppppppcVar42;\n        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;\n        if (pppppppcVar6 < (code *******)0x2) {\n          *pppppppcVar2 = (code ******)0x0;\n          pppppppcVar2[1] = (code ******)pppppppcStack_368;\n          goto LAB_00028c4c;\n        }\n        pppppppcVar26 = pppppppcVar2 + 2;\n        do {\n          pppppppcVar26[1] = (code ******)0xffffffff;\n          *pppppppcVar26 = (code ******)0xffffffff;\n          pppppppcVar26 = pppppppcVar26 + 2;\n        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n        *pppppppcVar2 = (code ******)0x0;\n        pppppppcVar2[1] = (code ******)pppppppcStack_368;\n        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {\nLAB_00028c4c:\n          pppppppcVar26 = pppppppcVar2;\n          do {\n            pppppppcVar43 = (code *******)*pppppppcVar26;\n            if (pppppppcVar43 != (code *******)0xffffffff) {\n              if (cStack_378 != '\0') {\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcVar43 != pppppppcStack_3a8) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);\n                }\n                *pppppppcVar26 = (code ******)pppppppcVar36;\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);\n                }\n                pppppppcVar26[1] = (code ******)pppppppcVar36;\n              }\n              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);\n              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);\n              pppppppcVar26[1] = (code ******)pppppppcVar43;\n            }\n            pppppppcVar26 = pppppppcVar26 + 2;\n          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n          if (0 < (int)pcStack_428) {\n            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;\n            do {\n              *pppppppcVar26 = (code ******)0xffffffff;\n              pppppppcVar26[1] = (code ******)0xffffffff;\n              pppppppcVar26 = pppppppcVar26 + 2;\n            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);\n          }\n          pppppppcVar38 = pppppppcStack_3ec;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar44[0x21] != (code ******)0x0) {\n            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);\n            pppppppcVar6 = (code *******)0x0;\n            pppppppcVar26 = pppppppcVar2;\n            while( true ) {\n              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);\n              if (pppppppcVar38 == pppppppcVar6) break;\n              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {\n                pppppppcVar26[2] =\n                     pppppppcVar2\n                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1\n                           ) * 2];\n                pppppppcVar26[3] =\n                     pppppppcVar2\n                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +\n                      1];\n              }\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n              pppppppcVar26 = pppppppcVar26 + 2;\n            }\n          }\n          goto LAB_00028e84;\n        }\n        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {\n          bVar19 = 0 < (int)pppppppcVar44[0x13];\n        }\n        else {\n          bVar19 = false;\n        }\n        pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n        pppppppcVar38 = pppppppcVar6;\n        pppppppcStack_460 =\n             (code *******)\n             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);\n        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;\n      }\n    }\n    else if (uStack_3a0 < 0x3fffffff) {\n      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);\n      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;\n      pppppppcStack_460 = (code *******)0xc;\n    }\n    else {\n      pppppppcStack_460 = (code *******)0xc;\n    }\n  }\n  else {\n    if (uVar21 < 0xccccccd) {\n      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);\n      iStack_350 = iVar40;\n      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);\n      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;\n    }\n    pppppppcStack_460 = (code *******)0xc;\n  }\nLAB_00028e84:\n  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n  pppppppcVar22 = pppppppcVar38;\n  if (pppppppcVar44[0x13] != (code ******)0x0) {\n    FUN_0001e14c(&pppppppcStack_3c4);\n    (*(code *)ppppppcVar4[0x599c])(iStack_340);\n    (*(code *)ppppppcVar4[0x599c])(iStack_350);\n    pppppppcVar22 = pppppppcVar38;\n  }\n  FUN_0001dc20(&pppppppcStack_3c4);\nLAB_00028eb4:\n  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {\n    return pppppppcStack_460;\n  }\n  pppppcVar5 = ppppppcVar4[0x5991];\n  ppppcVar24 = ppppcStack_33c;\n  (*(code *)pppppcVar5)();\n  *(byte *)(pppppppcVar22 + 7) =\n       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |\n       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;\n  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);\n  if (iVar40 == 0) {\n    pppppppcVar26 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar26 =\n         (code *******)\n         (*(code *)pppppcVar5[0x537d])\n                   (0,(code *)((int)pppppcVar5[0x5301] +\n                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);\n  }\n  return pppppppcVar26;\ncode_r0x000291d8:\n  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;\n  goto LAB_000291e4;\nLAB_00028e48:\n  pppppppcStack_460 = (code *******)0x1;\n  goto LAB_00028e84;\nLAB_00028fb4:\n  pppppppcStack_460 = (code *******)0xc;\n  goto LAB_00028e84;\n}" type_identifier (pointer_declarator "******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "****** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "***** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "**** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "*** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (pointer_declarator "* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" * (function_declarator "FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" identifier (parameter_list "(int *param_1,code *******param_2,code *******param_3,code *******param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *******param_2" type_identifier (pointer_declarator "*******param_2" * (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))))))) , (parameter_declaration "code *******param_3" type_identifier (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "code *******param_4" type_identifier (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) )))))))))) (compound_statement "{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {\n          pppppppcVar26 = pppppppcVar38;\n          iVar40 = FUN_00024660(param_2);\n          *param_1 = iVar40;\n          if (iVar40 == 0) {\n            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];\n          }\n          else {\n            pppppppcVar6 = (code *******)0x0;\n          }\n        }\n      }\n      else {\n        pppppppcVar6 = (code *******)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);\n    if (*unaff_s4 == (cod
[cell cut: 3,172,083 characters, first 262,144 kept]
(translation_unit (function_definition TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) )))))))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ])))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) ))) , (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (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) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) == (cast_expression ( (type_descriptor TYPE) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ))))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) + LIT) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) })) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ])) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (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 (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) * LIT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )))) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) - LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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 (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) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_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 ( ))) ;) (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 ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (pointer_expression * IDENT) ))) [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) + LIT) , (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ]) + LIT) , (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) )))) , (binary_expression IDENT == LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) ;) })) (labeled_statement 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 ( IDENT ))) ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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 ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) * LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (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 ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) < IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 IDENT + LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (labeled_statement 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 ( (subscript_expression IDENT [ LIT ]) ))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT)) == IDENT) )) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) 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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ]))) ))) )) (argument_list ( ))))) ;) (return_statement return 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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (char_literal ' escape_sequence ')) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )))) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) }))) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (pointer_expression * IDENT) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT)) == (pointer_expression * IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) 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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) })) })) }))))))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT )))) * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_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 != (binary_expression IDENT + LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_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 != (binary_expression IDENT + LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })))) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_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 != (binary_expression IDENT + LIT)) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (unary_expression ~ (parenthesized_expression ( IDENT ))) * IDENT) | (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) IDENT) != (binary_expression IDENT + LIT)) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ])) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (binary_expression IDENT & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )) == LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_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 (binary_expression IDENT + LIT) != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (subscript_expression IDENT [ LIT ])))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) })))))) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)))) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) + LIT) )))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , LIT , (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) , (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) , (binary_expression IDENT != LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , LIT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) << LIT) ))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ IDENT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) , (binary_expression IDENT != LIT)))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))))) ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT) < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) + LIT) ))) * LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) + LIT) )) * LIT) + LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (subscript_expression IDENT [ LIT ]))) << LIT) ))) >> LIT) )) << LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression IDENT + LIT) ]) + LIT) )))) ))) , LIT ))))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "code ******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {\n          pppppppcVar26 = pppppppcVar38;\n          iVar40 = FUN_00024660(param_2);\n          *param_1 = iVar40;\n          if (iVar40 == 0) {\n            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];\n          }\n          else {\n            pppppppcVar6 = (code *******)0x0;\n          }\n        }\n      }\n      else {\n        pppppppcVar6 = (code *******)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);\n    if (*unaff_s4 == (code ******)0x0) {\n      *unaff_s4 = (code ******)param_3;\n      goto LAB_00024fd0;\n    }\n    pppppppcVar31 = (code *******)(*unaff_s4)[10];\n    if (param_3 == (code *******)0x0) {\n      local_30 = *pppppppcVar31;\n      local_2c = pppppppcVar31[1];\n      local_28 = pppppppcVar31[2];\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s4 = (code ******)pppppppcVar6;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (code *******)param_3[10];\n    pppppppcVar26 = unaff_s4;\n    iVar40 = FUN_0001ae50(&local_30);\n    *param_1 = iVar40;\n    if (iVar40 == 0) {\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);\n      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s6 = (code *****)pppppppcVar6;\n      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(local_28);\n      ppppppcVar4 = pppppppcVar38[0x13];\n      goto LAB_00024fd4;\n    }\n    pppppppcVar6 = (code *******)0x0;\n  }\n  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {\n    return pppppppcVar6;\n  }\n  pppppppcVar42 = local_24;\n  puVar45 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar45 + 0x20ee4;\n  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);\n  pppppppcVar43 = (code *******)pppppppcVar42[0x15];\n  pppppppcStack_94 = (code *******)0x0;\n  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);\n  pppppppcVar25 = pppppppcVar43;\n  pppppppcVar27 = param_4;\n  pppppppcVar28 = param_4;\n  pppppppcStack_70 = param_2;\n  pppppppcStack_6c = pppppppcVar6;\n  pppppppcStack_68 = pppppppcVar36;\n  pppppppcStack_64 = pppppppcVar38;\n  pppppppcStack_60 = unaff_s4;\n  piStack_5c = param_1;\n  ppppppcStack_58 = unaff_s6;\n  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {\n    pppppppcVar6 = (code *******)0x0;\n    if (param_4[1] != (code ******)0x0) {\n      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      *ppppppcVar4 = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;\n    pppppppcVar25 = pppppppcVar26;\n    if (pppppppcVar6 == (code *******)0x0) {\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {\n        pppppppcVar25 = pppppppcVar31;\n        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);\n        pppppppcVar36 = (code *******)0x0;\n        puVar45 = puStack_d8;\n        if (pppppppcStack_a0 != (code *******)0xffffffff) {\n          unaff_s8 = (code *******)pppppppcVar42[0x15];\n          pppppppcStack_90 = (code *******)0x0;\n          if ((int)pppppppcVar6[1] < 1) {\n            pppppppcVar36 = (code *******)0x0;\n          }\n          else {\n            iStack_9c = (int)pppppppcStack_a0 * 0x14;\n            pppppppcStack_c4 = (code *******)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];\n              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||\n                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&\n                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {\n                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);\n                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);\n                pppppppcStack_c8 = pppppppcStack_a0;\n                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);\n                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);\n                do {\n                  param_4 = pppppppcVar36;\n                  if (pppppppcVar43 == (code *******)*param_4) {\n                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));\n                    if ((int)param_4[3] - (int)param_4[2] == 0) {\n                      pppppppcStack_cc =\n                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));\n                    }\n                    else {\n                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);\n                    }\n                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&\n                        (pppppppcVar25 = pppppppcStack_cc,\n                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&\n                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),\n                       puVar45 = puStack_d8, iVar40 != 0)) {\n                      pppppppcVar25 = pppppppcVar26 + 4;\n                      pppppppcStack_e0 = pppppppcStack_cc;\n                      pppppppcVar27 = pppppppcVar43;\n                      pppppppcVar28 = pppppppcVar31;\n                      pcStack_dc = pcVar46;\n                      pppppppcStack_b0 = pppppppcVar25;\n                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);\n                      puVar45 = puStack_d8;\n                      if (iVar40 == 0) {\n                        if (pppppppcStack_90 == (code *******)0x0) {\n                          pppppppcStack_90 = (code *******)*pppppppcVar26;\n                          pppppppcVar28 = (code *******)pppppppcVar26[1];\n                          pppppppcVar27 = (code *******)pppppppcVar26[2];\n                          pppppppcStack_84 = (code *******)pppppppcVar26[3];\n                          ppppppcStack_80 = pppppppcVar26[4];\n                          ppppppcStack_7c = pppppppcVar26[5];\n                          ppppppcStack_78 = pppppppcVar26[6];\n                          pppppppcVar25 = pppppppcStack_b0;\n                          pppppppcStack_8c = pppppppcVar28;\n                          pppppppcStack_88 = pppppppcVar27;\n                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        }\n                        pppppppcVar25 = pppppppcStack_c8;\n                        pppppppcStack_88 = pppppppcVar43;\n                        pppppppcStack_84 = pppppppcVar31;\n                        iVar40 = FUN_00019e64(&ppppppcStack_80);\n                        if (iVar40 == 0) {\n                          pppppppcVar36 = (code *******)0xc;\n                          puVar45 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];\n                        pppppppcVar25 = (code *******)&pppppppcStack_90;\n                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);\n                        puVar45 = puStack_d8;\n                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        pppppppcVar25 = (code *******)pppppppcVar26[1];\n                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);\n                        if ((pppppppcVar25 != (code *******)0x0) &&\n                           (pppppppcVar27 = pppppppcStack_90,\n                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),\n                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                        goto LAB_00025aa0;\n                        pppppppcVar36 = pppppppcStack_c8;\n                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;\n                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);\n                        pppppppcVar25 = (code *******)(iVar40 + -1);\n                        FUN_000188ac(&ppppppcStack_80);\n                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);\n                        puVar45 = puStack_d8;\n                      }\n                    }\n                  }\n                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);\n                  pppppppcVar36 = param_4 + 5;\n                } while (*(code *)(param_4 + 4) != (code)0x0);\n              }\n              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);\n              pppppppcVar36 = (code *******)0x0;\n            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);\nLAB_00025aa0:\n            if (pppppppcStack_90 != (code *******)0x0) {\n              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);\n              puVar45 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);\n    pppppppcVar27 = pppppppcVar31;\n    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;\n    pppppppcStack_90 = (code *******)0x0;\n    pppppppcVar27 = param_4;\n    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);\n    pppppppcVar36 = pppppppcStack_90;\n    puVar45 = puStack_d8;\n    if (pppppppcStack_90 == (code *******)0x0) {\n      pppppppcVar27 = unaff_s8 + 7;\n      if (unaff_s8[7] == (code ******)0x0) {\n        pppppppcStack_cc = unaff_s8 + 7;\n        pppppppcVar25 = (code *******)param_4[1];\n        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);\n        if (pppppppcStack_90 != (code *******)0x0) {\n          pppppppcVar36 = (code *******)0xc;\n          puVar45 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < (int)param_4[1]) {\n          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar40 = 0;\n          do {\n            pppppppcStack_90 = (code *******)0x0;\n            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);\n            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);\n            if (pppppppcStack_90 != (code *******)0x0) {\n              pppppppcVar36 = (code *******)0xc;\n              puVar45 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar40 = iVar40 + 1;\n          } while (iVar40 < (int)param_4[1]);\n        }\n      }\n      pppppppcVar27 = unaff_s8 + 7;\n      pppppppcVar25 = pppppppcVar6;\n      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);\n      puVar45 = puStack_d8;\n      pppppppcStack_b4 = pppppppcVar36;\n      pppppppcStack_94 = pppppppcVar36;\n      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n      if (pppppppcVar26[5] != (code ******)0x0) {\n        ppppppcStack_bc = pppppppcVar42[0x1d];\n        if (0 < (int)pppppppcVar26[5]) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          pppppppcStack_cc = (code *******)0x0;\n          do {\n            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;\n            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&\n               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {\n              pppppppcVar28 = (code *******)*pppppppcVar43;\n              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];\n              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {\n                if (0 < (int)param_4[1]) {\n                  ppppppcVar41 = param_4[2];\n                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];\n                  pppppppcStack_c4 = (code *******)0xffffffff;\n                  pppppppcVar25 = (code *******)0xffffffff;\n                  do {\n                    pppppppcVar38 = (code *******)*ppppppcVar41;\n                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;\n                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {\n                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {\n                        pppppppcVar25 = pppppppcVar38;\n                      }\n                    }\n                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&\n                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {\n                      pppppppcStack_c4 = pppppppcVar38;\n                    }\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                  } while (ppppppcVar41 != ppppppcVar39);\n                  if ((int)pppppppcVar25 < 0) {\n                    unaff_s8 = pppppppcStack_b4;\n                    if (-1 < (int)pppppppcStack_c4) {\n                      do {\n                        ppppppcVar41 = param_4[2];\nLAB_00025600:\n                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];\n                        pppppppcStack_c8 = pppppppcVar36;\n                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,\n                                               pppppppcStack_c4);\n                        if ((iVar40 == 0) &&\n                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,\n                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,\n                           iVar40 == 0)) {\n                          pppppppcVar25 = pppppppcStack_c8;\n                          pppppppcVar27 = param_4;\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                          unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                        }\n                        unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                      } while ((int)unaff_s8 < (int)param_4[1]);\n                    }\n                  }\n                  else {\n                    pppppppcVar27 = param_4;\n                    pppppppcVar28 = pppppppcVar6;\n                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                    puVar45 = puStack_d8;\n                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                    if ((-1 < (int)pppppppcStack_c4) &&\n                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {\n                      ppppppcVar41 = param_4[2];\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = pppppppcStack_b4;\n                if (0 < (int)param_4[1]) {\n                  do {\n                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];\n                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&\n                        (pppppppcVar28 = pppppppcVar6,\n                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))\n                       && (pppppppcVar27 = param_4,\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),\n                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                  } while ((int)unaff_s8 < (int)param_4[1]);\n                }\n              }\n            }\n            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);\n          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);\n        }\n        pppppppcStack_94 = (code *******)0x0;\n      }\n      ppppppcVar41 = *pppppppcVar26;\n      pppppppcVar25 = pppppppcVar43;\n      pppppppcVar27 = param_4;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {\n    return pppppppcVar36;\n  }\n  pcVar46 = *(code **)(puVar45 + -0x7ddc);\n  pcVar47 = FUN_00025af4;\n  pppppppcVar38 = pppppppcStack_74;\n  (*pcVar46)();\n  pcStack_f4 = pcVar47;\n  pppppppcStack_f8 = unaff_s8;\n  ppppppcStack_fc = ppppppcVar4;\n  pppppppcStack_100 = pppppppcVar43;\n  pppppppcStack_104 = pppppppcVar42;\n  pppppppcStack_108 = pppppppcVar36;\n  pppppppcStack_10c = pppppppcVar6;\n  pppppppcStack_110 = pppppppcVar31;\n  pppppppcStack_114 = param_4;\n  pppppppcStack_118 = pppppppcVar26;\n  pcStack_158 = pcVar46 + 0x205dc;\n  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);\n  pppppppcVar31 = (code *******)pppppppcVar25[3];\n  pppppppcVar26 = (code *******)pppppppcVar25[2];\n  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);\n  if (pppppppcVar6 == (code *******)0x0) {\n    pppppppcVar28 = &ppppppcStack_128;\n    pppppppcVar26 = pppppppcVar25;\n    pppppppcVar27 = pppppppcVar31;\n    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);\n    pppppppcVar6 = pppppppcStack_13c;\n    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {\n      pppppppcStack_150 = pppppppcStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);\n        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {\n          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);\n        }\n        else {\n          pppppppcStack_150 = pppppppcStack_13c;\n        }\n        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {\n          pppppppcVar26 = (code *******)0x0;\n          pppppppcVar27 = unaff_s8;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n          pppppppcVar6 = pppppppcStack_13c;\n          goto LAB_00025e98;\n        }\n        uStack_124 = 0;\n        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));\n        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);\n        if ((ppppppcVar4 != (code ******)0x0) &&\n           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          pppppppcVar43 = pppppppcStack_13c;\n          do {\n            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];\n            iStack_14c = (int)pppppppcVar26 * 8;\n            pppppppcVar28 = pppppppcVar31;\n            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {\nLAB_00025d44:\n              pppppppcVar27 = pppppppcVar31;\n              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);\n              if ((iVar40 != 0) &&\n                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {\n                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,\n                                        pppppppcVar42[3][(int)pppppppcVar26]);\n                pppppppcVar36 = (code *******)0x1;\n                if (iVar40 != 0) {\n                  ppppppcVar41 = pppppppcVar25[5];\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              ppppppcStack_148 = pppppppcVar25[3];\n              ppppppcStack_134 = pppppppcVar38[0x15];\n              pppppppcVar27 = pppppppcVar38;\n              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);\n              if ((int)pppppppcVar36 < 1) {\n                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\n              else {\n                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&\n                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==\n                     (code *****)0x0 ||\n                    (iVar40 = (*pcStack_138)((*pppppppcVar25)\n                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,\n                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))\n                   )) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\nLAB_00025c9c:\n              if (ppppppcVar41 != (code ******)0x0) {\n                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];\n                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);\n                pppppppcStack_160 = pppppppcVar26;\n                pppppppcStack_15c = pppppppcVar31;\n                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);\n                if (iVar40 != 0) goto LAB_00025cfc;\n              }\n              iVar40 = (*pcStack_130)(&ppppppcStack_128);\n              if (iVar40 == 0) {\n                pppppppcVar6 = (code *******)0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);\n        }\n        pppppppcVar28 = &ppppppcStack_128;\n        pppppppcVar26 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);\n      } while ((pppppppcVar6 == (code *******)0x0) &&\n              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n  }\nLAB_00025e98:\n  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return pppppppcVar6;\n  }\n  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar47 = FUN_00025ee8;\n  pppppppcVar34 = pppppppcStack_11c;\n  (*pcVar46)();\n  pcStack_218 = pcVar46 + 0x201e8;\n  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);\n  pppppppcStack_204 = (code *******)0x0;\n  pppppppcVar34[3] = (code ******)pppppppcVar28;\n  pppppppcVar34[2] = (code ******)0x0;\n  pppppppcVar34[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;\n  pppppppcVar32 = (code *******)*pppppppcVar34;\n  pppppppcVar29 = pppppppcVar28;\n  pppppppcStack_198 = pppppppcVar31;\n  pppppppcStack_194 = pppppppcVar38;\n  pppppppcStack_190 = pppppppcVar25;\n  pppppppcStack_18c = pppppppcVar6;\n  pppppppcStack_188 = pppppppcVar36;\n  pppppppcStack_184 = pppppppcVar42;\n  pppppppcStack_180 = pppppppcVar43;\n  ppppppcStack_17c = ppppppcVar4;\n  pppppppcStack_178 = unaff_s8;\n  pcStack_174 = pcVar47;\n  if (pppppppcVar34[1] < (code ******)0x88) {\n    pppppppcVar38 = (code *******)0x88;\n    pppppppcVar36 = pppppppcVar27;\n    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);\n    if (pppppppcVar32 != (code *******)0x0) {\n      pppppppcVar34[1] = (code ******)0x88;\n      *pppppppcVar34 = (code ******)pppppppcVar32;\n      goto LAB_00025f80;\n    }\n    pppppppcVar31 = (code *******)0xc;\n  }\n  else {\nLAB_00025f80:\n    pppppppcVar34[2] = (code ******)0x88;\n    pppppppcVar36 = (code *******)0x88;\n    pppppppcVar38 = (code *******)0x0;\n    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);\n    pppppppcVar32[0x10] = (code ******)0x1f;\n    if (pppppppcVar27 < (code *******)0xaaaaaaa) {\n      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);\n      ppppppcVar4 = (code ******)\n                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);\n      *pppppppcVar32 = ppppppcVar4;\n      if (pppppppcVar27 == (code *******)0x0) {\n        pppppppcVar6 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar6 = (code *******)0x1;\n        do {\n          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);\n        } while (pppppppcVar6 <= pppppppcVar27);\n      }\n      pppppppcVar38 = pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);\n      pppppppcVar32[8] = ppppppcVar4;\n      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);\n      pppppppcVar32[0x11] = (code ******)pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();\n      pppppppcVar32[0x17] = ppppppcVar4;\n      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);\n      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&\n         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {\n        iVar40 = 3;\n        if (pbVar7[3] == 0x2d) {\n          iVar40 = 4;\n        }\n        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);\n        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);\n        if (iVar40 == 0) {\n          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;\n      if (1 < (int)pppppppcVar32[0x17]) {\n        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {\n          pppppppcVar38 = (code *******)0x1;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);\n          pppppppcVar32[0xf] = ppppppcVar4;\n          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;\n          pppppppcVar42 = (code *******)0x0;\n          unaff_s8 = (code *******)0x1;\n          do {\n            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);\n            uVar21 = 0;\n            do {\n              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);\n              if (pppppppcVar31 != (code *******)0xffffffff) {\n                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);\n                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =\n                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);\n              }\n              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {\n                *(byte *)(pppppppcVar32 + 0x16) =\n                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;\n              }\n              uVar21 = uVar21 + 1;\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n            } while (uVar21 != 0x20);\n            pppppppcVar42 = pppppppcVar42 + 1;\n            pppppppcVar43 = (code *******)0x20;\n          } while (pppppppcVar42 != (code *******)0x20);\n        }\n        else {\n          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);\n        }\n      }\n      if ((*pppppppcVar32 != (code ******)0x0) &&\n         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar43 = (code *******)pppppppcVar34[5];\n        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);\n        bVar19 = pppppppcVar42 != (code *******)0x0;\n        unaff_s8 = (code *******)(uint)bVar19;\n        pppppppcVar36 = (code *******)0x4c;\n        pppppppcVar38 = (code *******)0x0;\n        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);\n        if (pppppppcVar43 != (code *******)0x0) {\n          unaff_s8 = (code *******)0x1;\n        }\n        cStack_1a5 = (char)unaff_s8;\n        ppppppcStack_1a0 = pppppppcVar32[0x17];\n        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);\n        pppppppcStack_1f0 = pppppppcVar26;\n        pppppppcStack_1c4 = pppppppcVar27;\n        pppppppcStack_1c0 = pppppppcVar27;\n        pppppppcStack_1bc = pppppppcVar27;\n        pppppppcStack_1b8 = pppppppcVar27;\n        pppppppcStack_1b0 = pppppppcVar43;\n        uStack_1a8 = bVar19;\n        if (0 < (int)pppppppcVar27) {\n          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);\n          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          pppppppcVar26 = apppppppcStack_1ec[0];\n        }\n        apppppppcStack_1ec[0] = pppppppcVar26;\n        if (pppppppcVar42 == (code *******)0x0) {\n          if ((int)pppppppcVar32[0x17] < 2) {\n            if (pppppppcVar43 != (code *******)0x0) {\n              FUN_00018720();\n            }\n          }\n          else {\n            FUN_0001a644(&pppppppcStack_1f0);\n          }\n        }\n        else {\n          if (1 < (int)pppppppcVar32[0x17]) {\n            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);\n            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);\n            do {\n              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);\n              pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n              if (pppppppcVar25 != (code *******)0x0) break;\n              if (((int)pppppppcVar27 <= iStack_1d0) ||\n                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),\n                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;\n              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);\n            } while (pppppppcVar25 == (code *******)0x0);\n            goto LAB_000261b4;\n          }\n          FUN_0001a578(&pppppppcStack_1f0);\n        }\nLAB_000263f8:\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar34[6] = (code ******)0x0;\n        pppppppcVar43 = (code *******)*pppppppcVar34;\n        pppppppcVar43[0x20] = (code ******)pppppppcVar28;\n        pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);\n        pppppppcStack_21c = (code *******)&pppppppcStack_204;\n        uStack_220 = 0;\n        pppppppcVar38 = pppppppcVar34;\n        pppppppcVar6 = (code *******)\n                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);\n        pppppppcVar29 = (code *******)0x2;\n        if (pppppppcStack_204 == (code *******)0x0) {\n          pppppppcVar36 = (code *******)0x0;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar6 != (code *******)0x0) {\nLAB_000264d8:\n            pppppppcVar29 = (code *******)0x10;\n            pppppppcVar38 = pppppppcVar6;\n            pppppppcVar36 = pppppppcVar27;\n            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);\n          }\n          if ((pppppppcVar27 == (code *******)0x0) ||\n             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {\n            pppppppcStack_204 = (code *******)0xc;\n            goto LAB_0002671c;\n          }\n          pppppppcVar32[0xd] = (code ******)pppppppcVar31;\n          pppppppcVar27 = (code *******)*pppppppcVar34;\n          ppppppcVar4 = pppppppcVar27[1];\n          iVar40 = (int)ppppppcVar4 << 2;\n          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);\n          pppppppcVar27[3] = (code ******)pppppppcVar28;\n          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);\n          pppppppcVar27[4] = (code ******)pppppppcVar43;\n          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);\n          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[5] = (code ******)pppppppcVar26;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[6] = ppppppcVar4;\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar28 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar43 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar26 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (ppppppcVar4 == (code ******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else {\n            ppppppcVar4 = (code ******)\n                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);\n            pppppppcVar27[0x21] = ppppppcVar4;\n            if (ppppppcVar4 != (code ******)0x0) {\n              ppppppcVar4 = (code ******)0x0;\n              if (pppppppcVar34[6] != (code ******)0x0) {\n                do {\n                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;\n                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                } while (ppppppcVar4 < pppppppcVar34[6]);\n              }\n              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,\n                           pppppppcVar27);\n              ppppppcVar4 = pppppppcVar34[6];\n              if (ppppppcVar4 == (code ******)0x0) {\nLAB_0002672c:\n                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);\n                pppppppcVar27[0x21] = (code ******)0x0;\n              }\n              else {\n                ppppppcVar41 = pppppppcVar27[0x21];\n                if (*ppppppcVar41 == (code *****)0x0) {\n                  ppppppcVar39 = (code ******)0x0;\n                  do {\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                    if (ppppppcVar4 == ppppppcVar39) {\n                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;\n                      break;\n                    }\n                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);\n                }\n              }\n            }\n            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);\n            pppppppcVar25 =\n                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);\n            pppppppcVar36 = pppppppcVar27;\n            if (pppppppcVar25 == (code *******)0x0) {\n              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);\n              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);\n              if (pppppppcVar25 == (code *******)0x0) {\n                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);\n                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);\n                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);\n                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);\n                pppppppcVar25 = pppppppcVar26;\n                if (pppppppcVar26 == (code *******)0x0) {\n                  pppppppcVar43 = (code *******)0x0;\n                  unaff_s8 = &ppppppcStack_1fc;\n                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);\n                  pppppppcVar6 = (code *******)0x0;\n                  pcVar46 = pcStack_218;\nLAB_0002676c:\n                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {\nLAB_00026778:\n                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);\n                    pppppppcVar29 = (code *******)0x1;\n                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==\n                        (code *****)0x0) {\n                      pppppppcVar38 = pppppppcVar27;\n                      pppppppcVar36 = pppppppcVar6;\n                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);\n                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;\n                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);\n                      pcVar46 = pcStack_218;\n                      if (pppppppcVar28[1] == (code ******)0x0) {\n                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                        pppppppcVar43 = (code *******)0x1;\n                        pcVar46 = pcStack_218;\n                      }\n                    }\n                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n                    goto LAB_0002676c;\n                  }\n                  if (pppppppcVar43 != (code *******)0x0) {\n                    pppppppcVar43 = (code *******)0x0;\n                    pppppppcVar6 = (code *******)0x0;\n                    goto LAB_00026778;\n                  }\n                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&\n                      (pppppppcVar34[6] != (code ******)0x0)) &&\n                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  else {\n                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  ppppppcVar4 = (code ******)\n                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);\n                  pppppppcVar27[7] = ppppppcVar4;\n                  if (ppppppcVar4 == (code ******)0x0) {\n                    pppppppcVar25 = (code *******)0xc;\n                    goto LAB_000261b4;\n                  }\n                  pcVar46 = pcStack_218;\n                  if (pppppppcVar6 != (code *******)0x0) {\n                    iVar40 = 0;\n                    ppppppcVar4 = (code ******)0x0;\n                    do {\n                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);\n                      *pcVar47 = (code)0x0;\n                      pcVar47[1] = (code)0x0;\n                      pcVar47[2] = (code)0x0;\n                      pcVar47[3] = (code)0x0;\n                      pcVar47[4] = (code)0x0;\n                      pcVar47[5] = (code)0x0;\n                      pcVar47[6] = (code)0x0;\n                      pcVar47[7] = (code)0x0;\n                      pcVar47[8] = (code)0x0;\n                      pcVar47[9] = (code)0x0;\n                      pcVar47[10] = (code)0x0;\n                      pcVar47[0xb] = (code)0x0;\n                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                      iVar40 = iVar40 + 0xc;\n                    } while (ppppppcVar4 < pppppppcVar27[2]);\n                    if (pppppppcVar27[2] != (code ******)0x0) {\n                      unaff_s8 = (code *******)0x0;\n                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);\n                      pppppppcStack_210 = (code *******)0x0;\n                      do {\n                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))\n                        ;\n                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {\n                          pppppppcVar28 = (code *******)0x0;\n                          do {\n                            pppppppcVar38 = pppppppcStack_210;\n                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);\n                            pppppppcVar25 = (code *******)0xc;\n                            if (iVar40 == 0) goto LAB_000261b4;\n                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);\n                            pppppppcVar6 = pppppppcVar6 + 1;\n                            pcVar46 = pcStack_218;\n                          } while ((int)pppppppcVar28 <\n                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));\n                        }\n                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);\n                        unaff_s8 = unaff_s8 + 3;\n                      } while (pppppppcStack_210 < pppppppcVar27[2]);\n                    }\n                  }\nLAB_00026918:\n                  pppppppcStack_204 = (code *******)0x0;\n                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&\n                      (pppppppcVar42 == (code *******)0x0)) &&\n                     (pppppppcVar34[5] == (code ******)0x0)) {\n                    pppppppcVar6 = pppppppcVar43;\n                    if (pppppppcVar32[2] != (code ******)0x0) {\n                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);\n                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {\n                    \n                    \n                        pppppppcVar26 =\n                             (code *******)\n                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();\n                        return pppppppcVar26;\n                      }\n                      (**(code **)(pcVar46 + -0x7ea4))(0);\n                      if (pppppppcVar6 != (code *******)0x0) {\n                        pppppppcVar36 = (code *******)0x7;\n                        pppppppcVar26 = (code *******)0x0;\n                        do {\n                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;\n                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {\n                            if (*(char *)ppppppcVar4 < '\0') {\n                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);\n                            }\n                          }\n                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {\n                            *(char *)(ppppppcVar4 + 1) = '\a';\n                          }\n                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);\n                        } while (pppppppcVar26 < pppppppcVar32[2]);\n                      }\n                    }\n                    pppppppcVar32[0x17] = (code ******)0x1;\n                    if (0 < (int)pppppppcVar32[0x13]) {\n                      pppppppcVar6 = (code *******)0x1;\n                    }\n                    *(byte *)(pppppppcVar32 + 0x16) =\n                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |\n                         (byte)(((uint)pppppppcVar6 & 1) << 6);\n                  }\n                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];\n                  pppppppcVar32[0x12] = ppppppcVar4;\n                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);\n                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);\n                  pppppppcVar6 = pppppppcVar31;\n                  pppppppcStack_200 = pppppppcVar31;\n                  if (pppppppcVar31 == (code *******)0x0) {\n                    if ((0 < (int)pppppppcVar32[0x13]) &&\n                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {\n                      pppppppcVar42 = &ppppppcStack_1fc;\n                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);\n                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);\n                      pppppppcVar27 = (code *******)0x0;\n                      do {\n                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];\n                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);\n                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {\n                          iVar40 = 0;\n                          piVar8 = piStack_1f4;\n                          if (iStack_1f8 < 1) {\nLAB_00026bb4:\n                            if (iVar40 != iStack_1f8) {\n                              pppppppcVar26 =\n                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];\n                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);\n                              if (iVar40 == 0) {\n                                pppppppcVar38 =\n                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);\n                                pppppppcVar27 =\n                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);\n                                pppppppcVar6 = pppppppcVar27;\n                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;\n                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&\n                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;\n                              iVar40 = iVar40 + 1;\n                              piVar8 = piVar8 + 1;\n                            } while (iStack_1f8 != iVar40);\n                          }\n                        }\n                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                      } while ((int)pppppppcVar27 < iStack_1f8);\n                    }\n                    pppppppcVar29 = (code *******)0x0;\n                    pppppppcVar36 = &ppppppcStack_1fc;\n                    pppppppcVar38 = pppppppcVar32;\n                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);\n                    pppppppcVar32[9] = ppppppcVar4;\n                    pppppppcVar6 = pppppppcStack_200;\n                    if (ppppppcVar4 != (code ******)0x0) {\n                      pppppppcVar29 = (code *******)0x1;\n                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar32[10] = ppppppcVar4;\n                      }\n                      else {\n                        pppppppcVar42 = &ppppppcStack_1fc;\n                        pppppppcVar28 = (code *******)&pppppppcStack_200;\n                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);\n                        pppppppcVar32[10] = ppppppcVar4;\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar29 = (code *******)0x6;\n                        pppppppcVar38 = pppppppcVar32;\n                        pppppppcVar36 = pppppppcVar42;\n                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar6 = pppppppcStack_200;\n                        if (((pppppppcVar32[10] == (code ******)0x0) ||\n                            (pppppppcVar32[0xb] == (code ******)0x0)) ||\n                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                      pppppppcVar6 = pppppppcVar31;\n                    }\n                  }\nLAB_00026ce0:\n                  pppppppcStack_204 = pppppppcVar6;\n                  FUN_0001db98(pppppppcVar34);\n                  FUN_0001dc20(&pppppppcStack_1f0);\n                  pppppppcVar31 = pppppppcStack_204;\n                  if (pppppppcStack_204 != (code *******)0x0) {\n                    FUN_0001dc9c(pppppppcVar32);\n                    *pppppppcVar34 = (code ******)0x0;\n                    pppppppcVar34[1] = (code ******)0x0;\n                    pppppppcVar31 = pppppppcStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pppppppcVar36 = (code *******)0x0;\n          if (pppppppcVar6 != (code *******)0x0) {\n            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          pppppppcVar32[0xd] = (code ******)0x0;\n          pppppppcVar25 = pppppppcStack_204;\n        }\nLAB_000261b4:\n        pppppppcStack_204 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        FUN_0001db98(pppppppcVar34);\n        FUN_0001dc20(&pppppppcStack_1f0);\n        FUN_0001dc9c(pppppppcVar32);\n        *pppppppcVar34 = (code ******)0x0;\n        pppppppcVar34[1] = (code ******)0x0;\n        pppppppcVar31 = pppppppcStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    pppppppcStack_204 = (code *******)0xc;\n    FUN_0001dc9c(pppppppcVar32);\n    *pppppppcVar34 = (code ******)0x0;\n    pppppppcVar34[1] = (code ******)0x0;\n    pppppppcVar31 = pppppppcStack_204;\n  }\nLAB_00026d24:\n  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {\n    return pppppppcVar31;\n  }\n  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);\n  uVar48 = 0x26e9c;\n  pppppppcVar31 = pppppppcStack_19c;\n  (*pcVar46)();\n  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);\n  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);\n  pppppppcVar25 = pppppppcVar38;\n  pppppppcStack_258 = pppppppcVar32;\n  pppppppcStack_254 = pppppppcVar34;\n  pppppppcStack_250 = pppppppcVar27;\n  pppppppcStack_24c = pppppppcVar6;\n  pppppppcStack_248 = pppppppcVar28;\n  pppppppcStack_244 = pppppppcVar42;\n  pppppppcStack_240 = pppppppcVar43;\n  pppppppcStack_23c = pppppppcVar26;\n  pppppppcStack_238 = unaff_s8;\n  uStack_234 = uVar48;\n  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);\n  if (pppppppcStack_2ec == (code *******)0x0) {\n    pppppppcVar43 = (code *******)0x0;\n  }\n  else {\n    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;\n    pppppppcVar38[0xb] = (code ******)0x0;\n    pppppppcVar38[0xc] = (code ******)0x0;\n    pppppppcStack_2e4 = pppppppcStack_2ec;\n    FUN_0001a53c(appppppcStack_2bc);\n    pppppppcVar43 = pppppppcStack_300;\n    if ((int)pppppppcVar38[2] < 1) {\n      pppppppcVar27 = (code *******)0x0;\n    }\n    else {\n      pppppppcVar27 = (code *******)0x0;\n      pppppppcStack_2f4 = (code *******)0x0;\n      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;\n      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;\n      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;\n      do {\n        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);\n        pppppppcVar6 = (code *******)\n                       (*pppppppcVar31 +\n                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);\n        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);\n        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);\n        if (pppppppcVar26 == (code *******)0x1) {\n          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);\n          pppppppcVar43 = pppppppcStack_300;\nLAB_00026f88:\n          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;\n          if (((uint)pppppppcVar32 & 0x20) != 0) {\n            pppppppcVar34 = appppppcStack_2bc;\n            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);\n            FUN_0001a53c(pppppppcVar34);\n            pppppppcVar43 = pppppppcStack_300;\n            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;\n            FUN_00018540(appppppcStack_2bc,10);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n          if (((uint)pppppppcVar32 & 0x80) == 0) {\n            if (((uint)pppppppcVar32 & 4) == 0) {\nLAB_0002700c:\n              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);\n              if (pppppppcVar32 == (code *******)0x0) {\nLAB_00027078:\n                if ((int)pppppppcVar27 < 1) {\n                  pppppppcVar34 = (code *******)0x0;\n                }\n                else {\n                  pppppppcVar32 = pppppppcStack_2ec + 0x300;\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];\n                  pppppppcVar42 = pppppppcStack_2ec;\n                  do {\n                    if ((pppppppcVar26 != (code *******)0x1) ||\n                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),\n                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {\n                      pppppppcVar37 = appppppcStack_2bc;\n                      uVar21 = 0;\n                      pppppppcVar25 = pppppppcVar37;\n                      pppppppcVar36 = pppppppcVar32;\n                      pppppppcVar29 = appppppcStack_2bc + 8;\n                      do {\n                        ppppppcVar4 = *pppppppcVar25;\n                        ppppppcVar41 = *pppppppcVar36;\n                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);\n                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;\n                        pppppppcVar25 = pppppppcVar25 + 1;\n                        pppppppcVar36 = pppppppcVar36 + 1;\n                        pppppppcVar29 = pppppppcVar29 + 1;\n                      } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                      if (uVar21 != 0) {\n                        pppppppcVar36 = appppppcStack_27c;\n                        pppppppcVar28 = (code *******)0x0;\n                        uVar21 = 0;\n                        pppppppcVar43 = pppppppcVar32;\n                        do {\n                          pppppppcVar29 = (code *******)*pppppppcVar37;\n                          ppppppcVar4 = *pppppppcVar43;\n                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);\n                          *pppppppcVar36 = ppppppcVar41;\n                          uVar21 = uVar21 | (uint)ppppppcVar41;\n                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);\n                          *pppppppcVar37 = ppppppcVar4;\n                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);\n                          pppppppcVar37 = pppppppcVar37 + 1;\n                          pppppppcVar43 = pppppppcVar43 + 1;\n                          pppppppcVar36 = pppppppcVar36 + 1;\n                        } while (pppppppcVar43 != pppppppcVar32 + 8);\n                        if (uVar21 != 0) {\n                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                          *pppppppcVar43 = appppppcStack_27c[0];\n                          pppppppcVar43[1] = appppppcStack_27c[1];\n                          pppppppcVar43[2] = appppppcStack_27c[2];\n                          pppppppcVar43[3] = appppppcStack_27c[3];\n                          pppppppcVar43[4] = ppppppcStack_26c;\n                          pppppppcVar43[5] = ppppppcStack_268;\n                          pppppppcVar43[6] = ppppppcStack_264;\n                          pppppppcVar43[7] = ppppppcStack_260;\n                          *pppppppcVar32 = appppppcStack_2bc[8];\n                          pppppppcVar32[1] = appppppcStack_2bc[9];\n                          pppppppcVar32[2] = appppppcStack_2bc[10];\n                          pppppppcVar32[3] = appppppcStack_2bc[0xb];\n                          pppppppcVar32[4] = ppppppcStack_28c;\n                          pppppppcVar32[5] = ppppppcStack_288;\n                          pppppppcVar32[6] = ppppppcStack_284;\n                          pppppppcVar32[7] = ppppppcStack_280;\n                          iVar40 = (*(code *)ppppppcStack_2dc)\n                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                              pppppppcVar42);\n                          if (iVar40 != 0) goto LAB_000275d4;\n                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                        }\n                        iVar40 = (*(code *)ppppppcStack_2e8)\n                                           (pppppppcVar42,\n                                            *(undefined4 *)\n                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                        if (iVar40 == 0) goto LAB_000275d4;\n                        pppppppcVar43 = pppppppcStack_300;\n                        if (pppppppcVar28 == (code *******)0x0) break;\n                      }\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar32 = pppppppcVar32 + 8;\n                    pppppppcVar42 = pppppppcVar42 + 3;\n                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);\n                }\n                if (pppppppcVar27 == pppppppcVar34) {\n                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                  *pppppppcVar43 = appppppcStack_2bc[0];\n                  pppppppcVar43[1] = appppppcStack_2bc[1];\n                  pppppppcVar43[2] = appppppcStack_2bc[2];\n                  pppppppcVar43[3] = appppppcStack_2bc[3];\n                  pppppppcVar43[4] = appppppcStack_2bc[4];\n                  pppppppcVar43[5] = appppppcStack_2bc[5];\n                  pppppppcVar43[6] = appppppcStack_2bc[6];\n                  pppppppcVar43[7] = appppppcStack_2bc[7];\n                  iVar40 = (*(code *)ppppppcStack_2d8)\n                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                      *(undefined4 *)\n                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                  if (iVar40 != 0) {\nLAB_000275d4:\n                    if ((int)pppppppcVar27 < 1) {\n                      pppppppcVar27 = (code *******)0xffffffff;\n                      pppppppcVar43 = pppppppcStack_300;\n                    }\n                    else {\n                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n                      pppppppcVar32 = pppppppcStack_2ec;\n                      do {\n                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n                        pppppppcVar32 = pppppppcVar32 + 3;\n                        pppppppcVar27 = (code *******)0xffffffff;\n                        pppppppcVar43 = pppppppcStack_300;\n                      } while (pppppppcVar32 != pppppppcVar34);\n                    }\n                    goto LAB_00027610;\n                  }\n                  FUN_0001a53c(appppppcStack_2bc);\n                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                  pppppppcVar43 = pppppppcStack_300;\n                }\n              }\n              else if ((pppppppcVar26 == (code *******)0x1) &&\n                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {\n                FUN_0001a53c(appppppcStack_2bc);\n                pppppppcVar43 = pppppppcStack_300;\n              }\n              else {\n                pppppppcVar25 = appppppcStack_2bc;\n                if ((int)pppppppcVar31[0x17] < 2) {\n                  pppppppcVar37 = pppppppcVar31 + 0x18;\n                  pppppppcVar29 = appppppcStack_2bc + 8;\n                  uVar21 = 0;\n                  do {\n                    ppppppcVar4 = *pppppppcVar37;\n                    pppppppcVar36 = (code *******)*pppppppcVar25;\n                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);\n                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar37 = pppppppcVar37 + 1;\n                  } while (pppppppcVar25 != pppppppcVar29);\n                }\n                else {\n                  pppppppcVar36 = pppppppcVar31 + 0x18;\n                  ppppppcVar4 = pppppppcVar31[0xf];\n                  uVar21 = 0;\n                  do {\n                    pppppppcVar29 = (code *******)*pppppppcVar25;\n                    ppppppcVar41 = (code ******)\n                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &\n                                   (uint)pppppppcVar29);\n                    *pppppppcVar25 = ppppppcVar41;\n                    uVar21 = uVar21 | (uint)ppppppcVar41;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar36 = pppppppcVar36 + 1;\n                    ppppppcVar4 = ppppppcVar4 + 1;\n                  } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                }\n                if (uVar21 != 0) goto LAB_00027078;\n              }\n            }\n            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))\n            {\n              FUN_0001a53c(appppppcStack_2bc);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            else {\n              ppppppcVar4 = (code ******)appppppcStack_2bc;\n              if ((int)pppppppcVar31[0x17] < 2) {\n                pppppppcVar25 = appppppcStack_2bc;\n                pppppppcVar37 = pppppppcVar31 + 0x18;\n                pppppppcVar29 = appppppcStack_2bc + 8;\n                uVar21 = 0;\n                do {\n                  ppppppcVar4 = *pppppppcVar25;\n                  pppppppcVar36 = (code *******)*pppppppcVar37;\n                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);\n                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;\n                  pppppppcVar25 = pppppppcVar25 + 1;\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (pppppppcVar25 != pppppppcVar29);\n              }\n              else {\n                pppppppcVar36 = pppppppcVar31 + 0x18;\n                ppppppcVar41 = pppppppcVar31[0xf];\n                uVar21 = 0;\n                do {\n                  pppppppcVar29 = (code *******)*ppppppcVar4;\n                  pppppcVar5 = (code *****)\n                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)\n                  ;\n                  *ppppppcVar4 = pppppcVar5;\n                  uVar21 = uVar21 | (uint)pppppcVar5;\n                  ppppppcVar4 = ppppppcVar4 + 1;\n                  pppppppcVar36 = pppppppcVar36 + 1;\n                  ppppppcVar41 = ppppppcVar41 + 1;\n                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);\n              }\n              if (uVar21 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            FUN_0001a53c(appppppcStack_2bc);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n        }\n        else {\n          if (pppppppcVar26 == (code *******)0x3) {\n            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);\n            pppppppcVar43 = pppppppcStack_300;\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)&DAT_00000005) {\n            if ((int)pppppppcVar31[0x17] < 2) {\n              appppppcStack_2bc[0] = (code ******)0xffffffff;\n              appppppcStack_2bc[1] = (code ******)0xffffffff;\n              appppppcStack_2bc[2] = (code ******)0xffffffff;\n              appppppcStack_2bc[3] = (code ******)0xffffffff;\n              appppppcStack_2bc[4] = (code ******)0xffffffff;\n              appppppcStack_2bc[5] = (code ******)0xffffffff;\n              appppppcStack_2bc[6] = (code ******)0xffffffff;\n              appppppcStack_2bc[7] = (code ******)0xffffffff;\n            }\n            else {\n              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)0x7) {\n            appppppcStack_2bc[0] = (code ******)0xffffffff;\n            appppppcStack_2bc[1] = (code ******)0xffffffff;\n            appppppcStack_2bc[2] = (code ******)0xffffffff;\n            appppppcStack_2bc[3] = (code ******)0xffffffff;\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)0xfffffbff;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);\n      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);\n      if (0 < (int)pppppppcVar27) {\n        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);\n        pppppppcStack_2cc = pppppppcStack_2f8;\n        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))\n        {\n          iStack_2d4 = (int)pppppppcVar27 * 0xc;\n          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);\n          if (pppppppcStack_2f0 != (code *******)0x0) {\n            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;\n            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;\n            FUN_0001a53c(appppppcStack_27c);\n            pppppppcVar42 = pppppppcStack_2ec + 1;\n            pppppppcStack_2f4 = pppppppcStack_2f8;\n            ppppppcStack_2d8 = (code ******)0x0;\n            pppppppcVar28 = &ppppppcStack_2c8;\n            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);\n            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;\n            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;\n            do {\n              uStack_2c4 = 0;\n              if (0 < (int)*pppppppcVar42) {\n                pppppppcVar6 = (code *******)0xffffffff;\n                pppppppcVar43 = pppppppcStack_2f8;\n                do {\n                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=\n                      (code *****)0xffffffff) {\n                    pppppppcVar25 =\n                         (code *******)\n                         (pppppppcVar31[6] +\n                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);\n                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);\n                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;\n                  }\n                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n                  pppppppcVar29 = (code *******)0x0;\n                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);\n              }\n              pppppppcVar29 = (code *******)0x0;\n              pppppppcVar25 = pppppppcVar31;\n              pppppppcVar36 = pppppppcVar28;\n              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n              pppppppcVar43 = pppppppcStack_2f4;\n              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;\n              *pppppppcVar6 = ppppppcVar4;\n              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                goto LAB_00027798;\n              }\n              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;\n                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;\n              }\n              else {\n                pppppppcVar29 = (code *******)0x1;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                  goto LAB_00027798;\n                }\n                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {\n                  ppppppcStack_2d8 = (code ******)0x1;\n                }\n                pppppppcVar29 = (code *******)0x2;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) &&\n                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))\n                goto LAB_00027794;\n              }\n              pppppppcVar32 = pppppppcStack_2ec;\n              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);\n              (*(code *)ppppppcStack_2dc)\n                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);\n              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n              pppppppcVar42 = pppppppcVar42 + 3;\n            } while (pppppppcStack_2f4 != pppppppcVar27);\n            pppppppcVar25 = (code *******)0x100;\n            if (ppppppcStack_2d8 == (code ******)0x0) {\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xb] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) {\nLAB_00027794:\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                pppppppcVar43 = pppppppcVar6;\nLAB_00027798:\n                (*(code *)ppppppcVar4)(pppppppcStack_2f0);\n                pppppppcVar6 = pppppppcVar43;\n                goto LAB_000277a4;\n              }\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar31 = pppppppcVar31 + 0x18;\n              pppppppcVar25 = (code *******)0x0;\n              pppppppcVar43 = pppppppcVar32;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                pppppppcVar29 = pppppppcVar25;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar36 = pppppppcStack_2f8;\n                      pppppppcVar34 = pppppppcVar43;\n                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {\n                        do {\n                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);\n                          pppppppcVar37 = pppppppcVar34 + 0x308;\n                          pppppppcVar34 = pppppppcVar34 + 8;\n                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);\n                      }\n                      else {\n                        pppppppcVar36 = (code *******)0x0;\n                      }\n                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2f0;\n                      }\n                      else {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2e4;\n                      }\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 8;\n                pppppppcVar31 = pppppppcVar31 + 1;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar25 != (code *******)0x100);\n            }\n            else {\n              pppppppcVar25 = (code *******)0x200;\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xc] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar25 = pppppppcVar28;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  pppppppcVar29 = pppppppcVar25;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar34 = (code *******)0x0;\n                      ppppppcVar41 = pppppppcVar43[0x300];\n                      pppppppcVar37 = pppppppcVar43;\n                      pppppppcVar2 = pppppppcStack_2f8;\n                      while ((uVar21 & (uint)ppppppcVar41) == 0) {\n                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);\n                        pppppppcVar36 = pppppppcVar37 + 8;\n                        ppppppcVar41 = pppppppcVar37[0x308];\n                        pppppppcVar37 = pppppppcVar36;\n                        pppppppcVar2 = pppppppcVar34;\n                      }\n                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];\n                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = pppppppcVar29 + 1;\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 0x20;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar28 + 0x100 != pppppppcVar25);\n            }\n            pppppppcVar25 = (code *******)0xa;\n            iVar40 = FUN_00018598(appppppcStack_27c);\n            if (iVar40 != 0) {\n              pppppppcVar43 = pppppppcStack_2ec + 0x300;\n              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);\n              do {\n                pppppppcVar42 = pppppppcStack_2f8;\n                pppppppcVar25 = (code *******)0xa;\n                iVar40 = FUN_00018598(pppppppcVar43);\n                if (iVar40 != 0) {\n                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];\n                  pppppppcVar28[10] = ppppppcVar4;\n                  if (ppppppcStack_2d8 != (code ******)0x0) {\n                    pppppppcVar28[0x10a] = ppppppcVar4;\n                  }\n                  break;\n                }\n                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);\n                pppppppcVar43 = pppppppcVar43 + 8;\n              } while (pppppppcStack_2f8 != pppppppcVar27);\n            }\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);\n            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);\n            do {\n              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n              pppppppcVar32 = pppppppcVar32 + 3;\n            } while (pppppppcVar34 != pppppppcVar32);\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n            pppppppcVar43 = (code *******)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n        pppppppcVar32 = pppppppcStack_2ec;\n        do {\n          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n          pppppppcVar32 = pppppppcVar32 + 3;\n        } while (pppppppcVar32 != pppppppcVar34);\n        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n        pppppppcVar43 = (code *******)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);\n    pppppppcVar25 = (code *******)0x100;\n    if (pppppppcVar27 == (code *******)0x0) {\n      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n      pppppppcVar38[0xb] = ppppppcVar4;\n      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);\n    }\n    else {\n      pppppppcVar43 = (code *******)0x0;\n    }\n  }\nLAB_00027804:\n  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {\n    return pppppppcVar43;\n  }\n  ppppppcVar4 = pppppppcStack_300[-0x1f77];\n  pcVar46 = FUN_00027cb0;\n  pppppppcVar22 = pppppppcStack_25c;\n  (*(code *)ppppppcVar4)();\n  pppppppcVar2 = pppppppcStack_2f4;\n  pppppppcVar37 = pppppppcStack_300;\n  ppppcStack_33c = *ppppppcVar4[0x5999];\n  pppppppcVar44 = (code *******)*pppppppcVar22;\n  pppppppcVar43 = (code *******)0x0;\n  pppppppcStack_338 = pppppppcVar32;\n  pppppppcStack_334 = pppppppcVar34;\n  pppppppcStack_330 = pppppppcVar27;\n  pppppppcStack_32c = pppppppcVar6;\n  pppppppcStack_328 = pppppppcVar28;\n  pppppppcStack_324 = pppppppcVar42;\n  pppppppcStack_320 = pppppppcVar31;\n  pppppppcStack_31c = pppppppcVar26;\n  pppppppcStack_318 = pppppppcVar38;\n  pcStack_314 = pcVar46;\n  pppppppcStack_308 = pppppppcVar36;\n  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);\n  ppppppcStack_458 = pppppppcVar22[4];\n  if (ppppppcStack_458 != (code ******)0x0) {\n    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if (pppppppcVar29 == pppppppcVar37) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n  }\n  if (pppppppcVar22[6] < pppppppcStack_2f8) {\n    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));\n  }\n  else {\n    pcStack_428 = (code *)0x0;\n  }\n  pppppppcStack_370 = pppppppcVar44;\n  if (pppppppcVar22[2] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[9] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[10] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[0xb] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar43 = (code *******)pppppppcVar44[0xc];\n  if (pppppppcVar43 == (code *******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar26 = pppppppcVar37;\n  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&\n      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))\n     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&\n         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,\n         pppppppcVar37 != (code *******)0x0)))) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);\n  if (pppppppcVar6 == (code *******)0x0) {\n    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;\n  }\n  else {\n    bVar19 = true;\n  }\n  ppppppcVar41 = pppppppcVar22[5];\n  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);\n  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];\n  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);\n  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {\n    pppppppcVar36 = pppppppcStack_374;\n  }\n  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);\n  pppppppcStack_394 = pppppppcStack_308;\n  pppppppcStack_398 = pppppppcStack_308;\n  bStack_379 = bStack_37c;\n  if (ppppppcVar41 != (code ******)0x0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);\n  pppppppcStack_38c = pppppppcStack_308;\n  pppppppcStack_390 = pppppppcStack_308;\n  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);\n  if (pppppppcVar38 == (code *******)0x0) {\n    pppppppcVar43 = pppppppcVar36;\n  }\n  pppppppcStack_3c4 = pppppppcVar25;\n  ppppppcStack_384 = ppppppcVar41;\n  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);\n  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n  pppppppcStack_380 = pppppppcVar44 + 0x18;\n  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);\n  pppppppcVar36 = (code *******)0x0;\n  pppppppcStack_3a8 = pppppppcVar36;\n  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {\n    pppppppcStack_3a8 = pppppppcStack_308;\n  }\n  pppppppcStack_38c = pppppppcStack_2fc;\n  pppppppcStack_390 = pppppppcStack_2fc;\n  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);\n  ppppppcVar39 = pppppppcVar44[0x13];\n  uVar21 = (int)ppppppcVar39 * 2;\n  pppppppcStack_36c = pppppppcStack_2f0;\n  pppppppcStack_368 = (code *******)0xffffffff;\n  pppppppcStack_3a4 = pppppppcStack_3a8;\n  if ((int)uVar21 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar21;\n    uStack_344 = uVar21;\n    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {\n      pppppppcStack_360 = (code *******)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if (((uint)pppppppcStack_2f0 & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar40 = 1;\n      pppppppcVar31 = pppppppcVar29;\n      if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n        iVar40 = -1;\n        pppppppcVar31 = pppppppcVar26;\n      }\n      pppppppcVar28 = pppppppcVar26;\n      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {\n        pppppppcVar28 = pppppppcVar29;\n      }\n      ppppppcVar39 = pppppppcVar44[0x17];\n      uVar21 = 8;\n      if (ppppppcStack_458 != (code ******)0x0) {\n        if (ppppppcVar39 == (code ******)0x1) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        pppppppcVar43 = (code *******)0x0;\n        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {\n          pppppppcVar43 = (code *******)0x2;\n        }\n        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |\n                 (uint)pppppppcVar43;\n      }\n      pppppppcStack_3ec = pppppppcVar29;\n      if ((int)pppppppcVar29 < (int)pppppppcVar31) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar36 = (code *******)&pppppppcStack_3ec;\n        if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n          pppppppcVar36 = (code *******)0x0;\n        }\n        pppppcVar5 = ppppppcVar4[0x594e];\n        pppppcVar9 = ppppppcVar4[0x5916];\nLAB_000291e4:\n        pppppppcVar26 = pppppppcStack_308;\n        if (uVar21 - 4 < 5) {\n                    \n                    \n          pppppppcVar26 =\n               (code *******)\n               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();\n          return pppppppcVar26;\n        }\n        while( true ) {\n          pppppppcVar27 = pppppppcStack_3ec;\n          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);\n          pppppppcVar38 = pppppppcStack_2f0;\n          if (pppppppcStack_3a4 <= pppppppcVar42) {\n            pppppppcVar43 = pppppppcStack_3ec;\n            pppppppcStack_460 =\n                 (code *******)\n                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);\n          }\n          if ((int)pppppppcVar27 < (int)pppppppcVar26) {\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);\n          }\n          else {\n            uVar10 = 0;\n          }\n          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);\n          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;\n          pppppppcStack_3ec = pppppppcVar27;\n          if ((int)pppppppcVar27 < (int)pppppppcVar31) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n          if ((int)pppppppcVar28 < (int)pppppppcVar27) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          pppppppcVar43 = pppppppcStack_3ec;\n          pppppppcVar38 = pppppppcStack_2f0;\n          pppppppcVar42 =\n               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n          pppppppcVar27 = pppppppcStack_370;\n          pppppppcVar26 = pppppppcStack_39c;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;\n          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          pppppppcStack_35c = (code *******)0x0;\n          pppppppcStack_448 = pppppppcStack_39c;\n          pppppppcStack_3e8 = (code *******)0x0;\n          pppppppcVar32 = (code *******)pppppppcStack_370[9];\n          pppppppcVar38 = pppppppcStack_36c;\n          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;\n          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n          if ((uVar10 & 1) == 0) {\n            if (uVar10 == 0) break;\n            if ((uVar10 & 6) == 6) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xc];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 2) != 0) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xb];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 4) == 0) break;\n            pppppppcVar38 = (code *******)pppppppcVar32[10];\n            pppppppcVar43 = pppppppcVar27;\n            pppppppcVar32 =\n                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);\n            if (pppppppcVar32 != (code *******)0x0) break;\n            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n            pppppcVar30 = ppppppcVar4[0x5916];\n          }\n          else {\n            pppppppcVar32 = (code *******)pppppppcVar27[10];\nLAB_000283bc:\n            pppppcVar30 = ppppppcVar4[0x5916];\n            if (pppppppcVar32 != (code *******)0x0) break;\n          }\n          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n          pppppppcStack_3ec =\n               (code *******)\n               (*(code *)ppppppcVar4[0x595c])\n                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);\n          if (pppppppcStack_3ec == pppppppcVar28) {\n            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {\n              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);\n            }\n            else {\n              uVar10 = 0;\n            }\n            if (ppppppcVar41 != (code ******)0x0) {\n              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);\n            }\n            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {\n              pppppppcStack_460 = (code *******)0x1;\n              pppppppcVar38 = pppppppcStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar1 = pppppppcVar36 != (code *******)0x0;\n        if ((pppppppcStack_360 == (code *******)0x0) ||\n           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,\n           pppppppcVar27[0x13] == (code ******)0x0)) {\nLAB_000283f0:\n          if ((int)pppppppcVar32[0xd] << 4 < 0) {\n            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||\n               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,\n               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {\n              pppppppcVar27 = pppppppcVar26;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n            }\n            else {\n              pppppppcVar26 = (code *******)0xffffffff;\n              pppppppcVar27 = (code *******)0x0;\n            }\n          }\n          else {\n            pppppppcVar26 = (code *******)0xffffffff;\n            pppppppcVar27 = (code *******)0x0;\n          }\n          pppppcVar30 = ppppppcVar4[0x594e];\n          pppppcVar11 = ppppppcVar4[0x594e];\n          pppppcVar12 = ppppppcVar4[0x594e];\n          pppppppcStack_454 = pppppppcVar36;\n          while( true ) {\n            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);\n            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);\n            pppppppcVar43 = pppppppcStack_39c;\n            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;\n            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&\n               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;\n            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {\n              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {\nLAB_00028534:\n                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);\n                pppppppcStack_3e8 =\n                     (code *******)\n                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);\n                if (pppppppcStack_3e8 == (code *******)0x0) break;\n                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n                pppppppcVar38 = (code *******)0x468;\n                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n                uVar49 = (*(code *)ppppppcVar4[0x595c])\n                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,\n                                    ppppppcVar4[0x5916] + -0xcf0);\n                pppppppcVar27 = pppppppcVar44;\n              }\n            }\n            pppppppcVar29 = pppppppcStack_370;\n            if ((int)pppppppcVar32[0xd] << 5 < 0) {\n              if (0 < (int)pppppppcVar32[2]) {\n                pppppcVar35 = ppppppcVar4[0x594e];\n                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;\n                iVar17 = 0;\n                do {\n                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];\n                  ppppppcVar18 = *pppppppcVar29;\n                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];\n                  if (((uint)pppppcVar15 & 0x800) != 0) {\n                    if (((uint)pppppcVar15 & 0xffc000) != 0) {\n                      pppppppcVar43 = pppppppcStack_39c;\n                      uVar16 = (*(code *)pppppcVar13)\n                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);\n                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;\n                      if ((uVar10 & 4) == 0) {\n                        uVar23 = uVar16 & 1;\n                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar23 = uVar10 & 8;\n                        if ((uVar16 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar23 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||\n                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;\n                    pppppppcVar43 = pppppppcVar37;\n                    iVar14 = (*(code *)(pppppcVar12 + -0x218))\n                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)\n                    ;\n                    if (iVar14 != 0) {\n                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);\n                      if (iVar14 <= iStack_34c) {\n                        iVar14 = iStack_34c;\n                      }\n                      pppppppcVar43 = pppppppcVar33;\n                      iStack_34c = iVar14;\n                      pppppppcStack_3e4 =\n                           (code *******)\n                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);\n                      pppppppcVar3 = pppppppcStack_3e4;\n                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                      pppppppcVar38 =\n                           (code *******)\n                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);\n                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                      ppppppcVar18 = *pppppppcVar37;\n                      if (ppppppcVar18 == (code ******)0x0) {\n                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;\n                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];\n                        ppppppcStack_3d8 = pppppppcVar38[2];\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                      }\n                      else {\n                        pppppppcVar43 = (code *******)ppppppcVar18[10];\n                        pppppppcStack_3e4 =\n                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);\n                        pppppppcVar3 = pppppppcStack_3e4;\n                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);\n                      }\n                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&\n                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))\n                      goto LAB_000294e4;\n                    }\n                  }\nLAB_00028744:\n                  iVar17 = iVar17 + 1;\n                } while (iVar17 < (int)pppppppcVar32[2]);\n              }\n              pppppppcStack_3e8 = (code *******)0x0;\n            }\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);\n            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n            do {\n              if (pppppppcVar32[0xb] != (code ******)0x0) {\n                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];\nLAB_00028a40:\n                pppppppcVar29 = pppppppcVar38;\n                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;\n                goto LAB_00028a6c;\n              }\n              ppppppcVar18 = pppppppcVar32[0xc];\n              if (ppppppcVar18 != (code ******)0x0) {\n                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n                if ((uVar16 & 1) == 0) {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];\n                }\n                else {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];\n                }\n                goto LAB_00028a40;\n              }\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar38 = pppppppcStack_36c;\n              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);\n            } while (iVar17 != 0);\n            pppppppcStack_3e8 = (code *******)0xc;\n            pppppppcVar3 = pppppppcStack_3e8;\nLAB_000294e4:\n            pppppppcStack_3e8 = pppppppcVar3;\n            if (pppppppcStack_360 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              break;\n            }\n            pppppppcVar38 = (code *******)0x0;\nLAB_00028a4c:\n            pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n            pppppppcVar29 = (code *******)FUN_00024f5c(&pppppppcStack_3e8,pppppppcVar43);\nLAB_00028a6c:\n            if (pppppppcVar29 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              if ((pppppppcStack_360 == (code *******)0x0) ||\n                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;\n              pppppcVar35 = ppppppcVar4[0x594e];\n              do {\n                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;\n                pppppppcVar29 = pppppppcStack_39c;\n                do {\n                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  pppppppcVar43 = pppppppcStack_35c;\n                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;\n                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (*pppppppcVar37 == (code ******)0x0);\n                pppppppcVar38 = (code *******)0x0;\n                pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n                pppppppcVar29 =\n                     (code *******)\n                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);\n                if (pppppppcStack_3e8 != (code *******)0x0) {\n                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;\n                  break;\n                }\n                pppppppcVar43 = pppppppcStack_35c;\n              } while (pppppppcVar29 == (code *******)0x0);\n            }\n            pppppppcVar37 = pppppppcStack_448;\n            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {\n              bVar1 = false;\n              pppppppcVar37 = pppppppcStack_448;\n            }\n            pppppppcStack_448 = pppppppcVar37;\n            pppppppcVar32 = pppppppcVar29;\n            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&\n               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||\n                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,\n                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {\n              pppppppcVar27 = pppppppcStack_39c;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n              pppppppcStack_454 = (code *******)0x0;\n              pppppppcVar26 = pppppppcStack_39c;\n            }\n          }\nLAB_00029448:\n          pppppppcVar27 = pppppppcVar26;\n          if (pppppppcStack_454 != (code *******)0x0) {\n            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);\n          }\n        }\n        else {\n          pppppppcVar34 = pppppppcVar32 + 1;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar43 = pppppppcVar34;\n          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);\n          pppppppcVar27 = pppppppcStack_3e8;\n          if (pppppppcStack_3e8 == (code *******)0x0) {\n            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {\n              pppppppcVar43 = pppppppcVar34;\n              bVar1 = false;\n            }\n            else {\n              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);\n              pppppppcVar43 = pppppppcVar34;\n              pppppppcVar27 = pppppppcStack_3e8;\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;\n              bVar1 = false;\n            }\n            goto LAB_000283f0;\n          }\n        }\nLAB_0002945c:\n        if (pppppppcVar27 == (code *******)0xffffffff) {\nLAB_000291a4:\n          FUN_0001e14c(&pppppppcStack_3c4);\nLAB_000291bc:\n          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);\n          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;\n          pppppppcStack_460 = (code *******)0x1;\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {\n          pppppppcStack_460 = (code *******)0xc;\n          goto LAB_00028e84;\n        }\n        pppppppcStack_368 = pppppppcVar27;\n        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {\n          if (pppppppcVar6 < (code *******)0x2) {\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          else {\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          if (pppppppcVar6 < (code *******)0x2) {\nLAB_0002930c:\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;\n          }\n          else {\n            cVar20 = *(code *)(pppppppcVar44 + 0x16);\nLAB_000292c0:\n            if (-1 < (char)cVar20) goto LAB_0002930c;\n          }\n          ppppppcVar18 = ppppppcStack_364;\n          pppppppcVar26 = pppppppcStack_370;\n          if (pppppppcVar27 < (code *******)0x3fffffff) {\n            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;\n            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n            if (pppppppcVar32 == (code *******)0x0) {\nLAB_0002923c:\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              pppppppcStack_460 = (code *******)0xc;\n            }\n            else {\n              pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n              if (pppppppcVar26[0x13] == (code ******)0x0) {\n                pppppppcStack_3dc = (code *******)0x0;\n                ppppppcStack_3d8 = ppppppcVar18;\n                uStack_3d0 = 0;\n                uStack_3cc = 0;\n                uStack_3c8 = 0;\n                pppppppcStack_3e0 = pppppppcVar32;\n                pppppppcStack_3d4 = pppppppcVar27;\n                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);\n                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                if (pppppppcStack_460 == (code *******)0x0) {\n                  if (*pppppppcVar32 == (code ******)0x0) {\n                    pppppppcVar34 = (code *******)0x0;\nLAB_00029210:\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    goto LAB_000291a4;\n                  }\nLAB_00028bc8:\n                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n                  pppppppcStack_368 = pppppppcVar27;\n                  ppppppcStack_364 = ppppppcVar18;\n                  pppppppcStack_360 = pppppppcVar32;\n                  goto LAB_00028be8;\n                }\nLAB_0002916c:\n                pppppppcVar34 = (code *******)0x0;\n              }\n              else {\n                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;\n                pppppcVar30 = ppppppcVar4[0x594e];\n                pppppcVar11 = ppppppcVar4[0x594e];\n                while( true ) {\n                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);\n                  pppppppcVar38 = pppppppcVar29;\n                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);\n                  uStack_3d0 = 0;\n                  uStack_3cc = 0;\n                  uStack_3c8 = 0;\n                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n                  pppppppcStack_3e0 = pppppppcVar32;\n                  pppppppcStack_3dc = pppppppcVar34;\n                  ppppppcStack_3d8 = ppppppcVar18;\n                  pppppppcStack_3d4 = pppppppcVar27;\n                  pppppppcStack_460 =\n                       (code *******)\n                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);\n                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                  if (pppppppcStack_460 != (code *******)0x0) break;\n                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))\n                  {\n                    pppppppcVar43 = pppppppcVar32;\n                    pppppppcVar38 = pppppppcVar34;\n                    pppppppcStack_460 =\n                         (code *******)\n                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,\n                                      (code *)((int)pppppppcVar27 + 1));\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;\n                    goto LAB_00028bc8;\n                  }\n                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));\n                  do {\n                    while( true ) {\n                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);\n                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;\n                      pppppppcVar43 = *(code ********)(pcVar46 + -4);\n                      if (pppppppcVar43 != (code *******)0x0) break;\n                      pcVar46 = pcVar46 + -4;\n                    }\n                    pcVar46 = pcVar46 + -4;\n                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);\n                  ppppppcVar18 = (code ******)\n                                 (*(code *)(pppppcVar11 + -0x108d))\n                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);\n                }\n              }\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;\n            }\n          }\n          else {\n            pppppppcStack_460 = (code *******)0xc;\n          }\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar44[0x13] != (code ******)0x0) {\n          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n          pppppppcVar38 = pppppppcVar27;\n          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          goto LAB_0002930c;\n        }\nLAB_000292a8:\n        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {\n          cVar20 = *(code *)(pppppppcVar44 + 0x16);\n          goto LAB_000292c0;\n        }\nLAB_00028be8:\n        pppppppcStack_460 = pppppppcVar42;\n        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;\n        if (pppppppcVar6 < (code *******)0x2) {\n          *pppppppcVar2 = (code ******)0x0;\n          pppppppcVar2[1] = (code ******)pppppppcStack_368;\n          goto LAB_00028c4c;\n        }\n        pppppppcVar26 = pppppppcVar2 + 2;\n        do {\n          pppppppcVar26[1] = (code ******)0xffffffff;\n          *pppppppcVar26 = (code ******)0xffffffff;\n          pppppppcVar26 = pppppppcVar26 + 2;\n        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n        *pppppppcVar2 = (code ******)0x0;\n        pppppppcVar2[1] = (code ******)pppppppcStack_368;\n        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {\nLAB_00028c4c:\n          pppppppcVar26 = pppppppcVar2;\n          do {\n            pppppppcVar43 = (code *******)*pppppppcVar26;\n            if (pppppppcVar43 != (code *******)0xffffffff) {\n              if (cStack_378 != '\0') {\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcVar43 != pppppppcStack_3a8) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);\n                }\n                *pppppppcVar26 = (code ******)pppppppcVar36;\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);\n                }\n                pppppppcVar26[1] = (code ******)pppppppcVar36;\n              }\n              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);\n              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);\n              pppppppcVar26[1] = (code ******)pppppppcVar43;\n            }\n            pppppppcVar26 = pppppppcVar26 + 2;\n          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n          if (0 < (int)pcStack_428) {\n            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;\n            do {\n              *pppppppcVar26 = (code ******)0xffffffff;\n              pppppppcVar26[1] = (code ******)0xffffffff;\n              pppppppcVar26 = pppppppcVar26 + 2;\n            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);\n          }\n          pppppppcVar38 = pppppppcStack_3ec;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar44[0x21] != (code ******)0x0) {\n            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);\n            pppppppcVar6 = (code *******)0x0;\n            pppppppcVar26 = pppppppcVar2;\n            while( true ) {\n              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);\n              if (pppppppcVar38 == pppppppcVar6) break;\n              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {\n                pppppppcVar26[2] =\n                     pppppppcVar2\n                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1\n                           ) * 2];\n                pppppppcVar26[3] =\n                     pppppppcVar2\n                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +\n                      1];\n              }\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n              pppppppcVar26 = pppppppcVar26 + 2;\n            }\n          }\n          goto LAB_00028e84;\n        }\n        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {\n          bVar19 = 0 < (int)pppppppcVar44[0x13];\n        }\n        else {\n          bVar19 = false;\n        }\n        pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n        pppppppcVar38 = pppppppcVar6;\n        pppppppcStack_460 =\n             (code *******)\n             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);\n        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;\n      }\n    }\n    else if (uStack_3a0 < 0x3fffffff) {\n      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);\n      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;\n      pppppppcStack_460 = (code *******)0xc;\n    }\n    else {\n      pppppppcStack_460 = (code *******)0xc;\n    }\n  }\n  else {\n    if (uVar21 < 0xccccccd) {\n      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);\n      iStack_350 = iVar40;\n      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);\n      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;\n    }\n    pppppppcStack_460 = (code *******)0xc;\n  }\nLAB_00028e84:\n  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n  pppppppcVar22 = pppppppcVar38;\n  if (pppppppcVar44[0x13] != (code ******)0x0) {\n    FUN_0001e14c(&pppppppcStack_3c4);\n    (*(code *)ppppppcVar4[0x599c])(iStack_340);\n    (*(code *)ppppppcVar4[0x599c])(iStack_350);\n    pppppppcVar22 = pppppppcVar38;\n  }\n  FUN_0001dc20(&pppppppcStack_3c4);\nLAB_00028eb4:\n  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {\n    return pppppppcStack_460;\n  }\n  pppppcVar5 = ppppppcVar4[0x5991];\n  ppppcVar24 = ppppcStack_33c;\n  (*(code *)pppppcVar5)();\n  *(byte *)(pppppppcVar22 + 7) =\n       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |\n       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;\n  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);\n  if (iVar40 == 0) {\n    pppppppcVar26 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar26 =\n         (code *******)\n         (*(code *)pppppcVar5[0x537d])\n                   (0,(code *)((int)pppppcVar5[0x5301] +\n                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);\n  }\n  return pppppppcVar26;\ncode_r0x000291d8:\n  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;\n  goto LAB_000291e4;\nLAB_00028e48:\n  pppppppcStack_460 = (code *******)0x1;\n  goto LAB_00028e84;\nLAB_00028fb4:\n  pppppppcStack_460 = (code *******)0xc;\n  goto LAB_00028e84;\n}" (type_identifier "code") (pointer_declarator "******* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (* "*") (pointer_declarator "****** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (* "*") (pointer_declarator "***** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (* "*") (pointer_declarator "**** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (* "*") (pointer_declarator "*** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (* "*") (pointer_declarator "** FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (* "*") (pointer_declarator "* FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (* "*") (function_declarator "FUN_00024f5c(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (identifier "FUN_00024f5c") (parameter_list "(int *param_1,code *******param_2,code *******param_3,code *******param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "code *******param_2" (type_identifier "code") (pointer_declarator "*******param_2" (* "*") (pointer_declarator "******param_2" (* "*") (pointer_declarator "*****param_2" (* "*") (pointer_declarator "****param_2" (* "*") (pointer_declarator "***param_2" (* "*") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))))))))) (, ",") (parameter_declaration "code *******param_3" (type_identifier "code") (pointer_declarator "*******param_3" (* "*") (pointer_declarator "******param_3" (* "*") (pointer_declarator "*****param_3" (* "*") (pointer_declarator "****param_3" (* "*") (pointer_declarator "***param_3" (* "*") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))))))))) (, ",") (parameter_declaration "code *******param_4" (type_identifier "code") (pointer_declarator "*******param_4" (* "*") (pointer_declarator "******param_4" (* "*") (pointer_declarator "*****param_4" (* "*") (pointer_declarator "****param_4" (* "*") (pointer_declarator "***param_4" (* "*") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))))))))) () ")")))))))))) (compound_statement "{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code ******ppppppcVar4;\n  code *****pppppcVar5;\n  code *******pppppppcVar6;\n  byte *pbVar7;\n  int *piVar8;\n  code *****pppppcVar9;\n  uint uVar10;\n  code *****pppppcVar11;\n  code *****pppppcVar12;\n  code *****pppppcVar13;\n  int iVar14;\n  code *****pppppcVar15;\n  uint uVar16;\n  int iVar17;\n  code ******ppppppcVar18;\n  bool bVar19;\n  code cVar20;\n  uint uVar21;\n  code *******pppppppcVar22;\n  uint uVar23;\n  code ****ppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  code *******pppppppcVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *****pppppcVar30;\n  code *******pppppppcVar31;\n  code *******pppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code *****pppppcVar35;\n  code *******pppppppcVar36;\n  code *******pppppppcVar37;\n  code *******pppppppcVar38;\n  code ******ppppppcVar39;\n  code *******unaff_s4;\n  int iVar40;\n  code ******ppppppcVar41;\n  code *******pppppppcVar42;\n  code ******unaff_s6;\n  code *******pppppppcVar43;\n  code *******pppppppcVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  code *******unaff_s8;\n  code *pcVar47;\n  undefined4 uVar48;\n  undefined8 uVar49;\n  code *******pppppppcStack_460;\n  code ******ppppppcStack_458;\n  code *******pppppppcStack_454;\n  code *******pppppppcStack_448;\n  code *pcStack_428;\n  code *******pppppppcStack_3ec;\n  code *******pppppppcStack_3e8;\n  code *******pppppppcStack_3e4;\n  code *******pppppppcStack_3e0;\n  code *******pppppppcStack_3dc;\n  code ******ppppppcStack_3d8;\n  code *******pppppppcStack_3d4;\n  undefined4 uStack_3d0;\n  undefined4 uStack_3cc;\n  undefined4 uStack_3c8;\n  code *******pppppppcStack_3c4;\n  code *******pppppppcStack_3c0;\n  int *piStack_3bc;\n  int iStack_3b8;\n  int iStack_3ac;\n  code *******pppppppcStack_3a8;\n  code *******pppppppcStack_3a4;\n  uint uStack_3a0;\n  code *******pppppppcStack_39c;\n  code *******pppppppcStack_398;\n  code *******pppppppcStack_394;\n  code *******pppppppcStack_390;\n  code *******pppppppcStack_38c;\n  undefined4 uStack_388;\n  code ******ppppppcStack_384;\n  code *******pppppppcStack_380;\n  byte bStack_37c;\n  byte bStack_37b;\n  byte bStack_37a;\n  byte bStack_379;\n  char cStack_378;\n  byte bStack_377;\n  byte bStack_376;\n  code *******pppppppcStack_374;\n  code *******pppppppcStack_370;\n  code *******pppppppcStack_36c;\n  code *******pppppppcStack_368;\n  code ******ppppppcStack_364;\n  code *******pppppppcStack_360;\n  code *******pppppppcStack_35c;\n  undefined4 uStack_358;\n  uint uStack_354;\n  int iStack_350;\n  int iStack_34c;\n  uint uStack_344;\n  int iStack_340;\n  code ****ppppcStack_33c;\n  code *******pppppppcStack_338;\n  code *******pppppppcStack_334;\n  code *******pppppppcStack_330;\n  code *******pppppppcStack_32c;\n  code *******pppppppcStack_328;\n  code *******pppppppcStack_324;\n  code *******pppppppcStack_320;\n  code *******pppppppcStack_31c;\n  code *******pppppppcStack_318;\n  code *pcStack_314;\n  code *******pppppppcStack_308;\n  code *******pppppppcStack_300;\n  code *******pppppppcStack_2fc;\n  code *******pppppppcStack_2f8;\n  code *******pppppppcStack_2f4;\n  code *******pppppppcStack_2f0;\n  code *******pppppppcStack_2ec;\n  code ******ppppppcStack_2e8;\n  code *******pppppppcStack_2e4;\n  code *******pppppppcStack_2e0;\n  code ******ppppppcStack_2dc;\n  code ******ppppppcStack_2d8;\n  int iStack_2d4;\n  code *******pppppppcStack_2cc;\n  code ******ppppppcStack_2c8;\n  undefined4 uStack_2c4;\n  undefined4 uStack_2c0;\n  code ******appppppcStack_2bc [12];\n  code ******ppppppcStack_28c;\n  code ******ppppppcStack_288;\n  code ******ppppppcStack_284;\n  code ******ppppppcStack_280;\n  code ******appppppcStack_27c [4];\n  code ******ppppppcStack_26c;\n  code ******ppppppcStack_268;\n  code ******ppppppcStack_264;\n  code ******ppppppcStack_260;\n  code *******pppppppcStack_25c;\n  code *******pppppppcStack_258;\n  code *******pppppppcStack_254;\n  code *******pppppppcStack_250;\n  code *******pppppppcStack_24c;\n  code *******pppppppcStack_248;\n  code *******pppppppcStack_244;\n  code *******pppppppcStack_240;\n  code *******pppppppcStack_23c;\n  code *******pppppppcStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_220;\n  code *******pppppppcStack_21c;\n  code *pcStack_218;\n  code *******pppppppcStack_210;\n  code *pcStack_20c;\n  code *******pppppppcStack_204;\n  code *******pppppppcStack_200;\n  code ******ppppppcStack_1fc;\n  int iStack_1f8;\n  int *piStack_1f4;\n  code *******pppppppcStack_1f0;\n  code *******apppppppcStack_1ec [6];\n  int iStack_1d4;\n  int iStack_1d0;\n  int iStack_1cc;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code *******pppppppcStack_1bc;\n  code *******pppppppcStack_1b8;\n  code *******pppppppcStack_1b0;\n  undefined1 uStack_1a8;\n  byte bStack_1a7;\n  byte bStack_1a6;\n  char cStack_1a5;\n  code ******ppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code ******ppppppcStack_17c;\n  code *******pppppppcStack_178;\n  code *pcStack_174;\n  code *******pppppppcStack_160;\n  code *******pppppppcStack_15c;\n  code *pcStack_158;\n  code *******pppppppcStack_150;\n  int iStack_14c;\n  code ******ppppppcStack_148;\n  undefined4 uStack_144;\n  undefined4 uStack_140;\n  code *******pppppppcStack_13c;\n  code *pcStack_138;\n  code ******ppppppcStack_134;\n  code *pcStack_130;\n  code *pcStack_12c;\n  code ******ppppppcStack_128;\n  undefined4 uStack_124;\n  undefined4 uStack_120;\n  code *******pppppppcStack_11c;\n  code *******pppppppcStack_118;\n  code *******pppppppcStack_114;\n  code *******pppppppcStack_110;\n  code *******pppppppcStack_10c;\n  code *******pppppppcStack_108;\n  code *******pppppppcStack_104;\n  code *******pppppppcStack_100;\n  code ******ppppppcStack_fc;\n  code *******pppppppcStack_f8;\n  code *pcStack_f4;\n  code *******pppppppcStack_e0;\n  code *pcStack_dc;\n  undefined *puStack_d8;\n  code *******pppppppcStack_cc;\n  code *******pppppppcStack_c8;\n  code *******pppppppcStack_c4;\n  code *pcStack_c0;\n  code ******ppppppcStack_bc;\n  code *pcStack_b8;\n  code *******pppppppcStack_b4;\n  code *******pppppppcStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  code *pcStack_a4;\n  code *******pppppppcStack_a0;\n  int iStack_9c;\n  code *******pppppppcStack_94;\n  code *******pppppppcStack_90;\n  code *******pppppppcStack_8c;\n  code *******pppppppcStack_88;\n  code *******pppppppcStack_84;\n  code ******ppppppcStack_80;\n  code ******ppppppcStack_7c;\n  code ******ppppppcStack_78;\n  code *******pppppppcStack_74;\n  code *******pppppppcStack_70;\n  code *******pppppppcStack_6c;\n  code *******pppppppcStack_68;\n  code *******pppppppcStack_64;\n  code *******pppppppcStack_60;\n  int *piStack_5c;\n  code ******ppppppcStack_58;\n  code ******local_30;\n  code ******local_2c;\n  code ******local_28;\n  code *******local_24;\n  \n  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;\n  pppppppcVar36 = (code *******)param_2[10];\n  pppppppcVar38 = (code *******)param_2[0x15];\n  pppppppcVar26 = param_2;\n  pppppppcVar6 = param_3;\n  if ((int)param_2[0x1a] < (int)pppppppcVar36) {\n    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;\n    param_2[0x1a] = (code ******)pppppppcVar36;\nLAB_00024fd0:\n    ppppppcVar4 = pppppppcVar38[0x13];\nLAB_00024fd4:\n    pppppppcVar31 = param_3;\n    if ((ppppppcVar4 != (code ******)0x0) &&\n       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar31 = pppppppcVar36;\n      iVar40 = FUN_0001a39c(param_2);\n      *param_1 = iVar40;\n      if (iVar40 == 0) {\n        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {\n          pppppppcVar26 = pppppppcVar38;\n          iVar40 = FUN_00024660(param_2);\n          *param_1 = iVar40;\n          if (iVar40 == 0) {\n            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];\n          }\n          else {\n            pppppppcVar6 = (code *******)0x0;\n          }\n        }\n      }\n      else {\n        pppppppcVar6 = (code *******)0x0;\n      }\n    }\n  }\n  else {\n    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);\n    if (*unaff_s4 == (code ******)0x0) {\n      *unaff_s4 = (code ******)param_3;\n      goto LAB_00024fd0;\n    }\n    pppppppcVar31 = (code *******)(*unaff_s4)[10];\n    if (param_3 == (code *******)0x0) {\n      local_30 = *pppppppcVar31;\n      local_2c = pppppppcVar31[1];\n      local_28 = pppppppcVar31[2];\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s4 = (code ******)pppppppcVar6;\n      goto LAB_00024fd0;\n    }\n    unaff_s4 = (code *******)param_3[10];\n    pppppppcVar26 = unaff_s4;\n    iVar40 = FUN_0001ae50(&local_30);\n    *param_1 = iVar40;\n    if (iVar40 == 0) {\n      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);\n      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;\n      param_3 = &local_30;\n      pppppppcVar26 = pppppppcVar38;\n      pppppppcVar6 = (code *******)FUN_0001d798(param_1);\n      *unaff_s6 = (code *****)pppppppcVar6;\n      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;\n      (*(code *)PTR_free_0003e320)(local_28);\n      ppppppcVar4 = pppppppcVar38[0x13];\n      goto LAB_00024fd4;\n    }\n    pppppppcVar6 = (code *******)0x0;\n  }\n  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {\n    return pppppppcVar6;\n  }\n  pppppppcVar42 = local_24;\n  puVar45 = PTR___stack_chk_fail_0003e2f4;\n  (*(code *)PTR___stack_chk_fail_0003e2f4)();\n  puStack_d8 = puVar45 + 0x20ee4;\n  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);\n  pppppppcVar43 = (code *******)pppppppcVar42[0x15];\n  pppppppcStack_94 = (code *******)0x0;\n  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);\n  pppppppcVar25 = pppppppcVar43;\n  pppppppcVar27 = param_4;\n  pppppppcVar28 = param_4;\n  pppppppcStack_70 = param_2;\n  pppppppcStack_6c = pppppppcVar6;\n  pppppppcStack_68 = pppppppcVar36;\n  pppppppcStack_64 = pppppppcVar38;\n  pppppppcStack_60 = unaff_s4;\n  piStack_5c = param_1;\n  ppppppcStack_58 = unaff_s6;\n  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {\n    pppppppcVar6 = (code *******)0x0;\n    if (param_4[1] != (code ******)0x0) {\n      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      *ppppppcVar4 = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      goto LAB_000253f8;\n    }\nLAB_000253c8:\n    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;\n    pppppppcVar25 = pppppppcVar26;\n    if (pppppppcVar6 == (code *******)0x0) {\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n    }\n    else {\nLAB_000253d8:\n      pppppppcVar36 = (code *******)0x0;\n      puVar45 = puStack_d8;\n      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {\n        pppppppcVar25 = pppppppcVar31;\n        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);\n        pppppppcVar36 = (code *******)0x0;\n        puVar45 = puStack_d8;\n        if (pppppppcStack_a0 != (code *******)0xffffffff) {\n          unaff_s8 = (code *******)pppppppcVar42[0x15];\n          pppppppcStack_90 = (code *******)0x0;\n          if ((int)pppppppcVar6[1] < 1) {\n            pppppppcVar36 = (code *******)0x0;\n          }\n          else {\n            iStack_9c = (int)pppppppcStack_a0 * 0x14;\n            pppppppcStack_c4 = (code *******)0x0;\n            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);\n            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);\n            do {\n              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];\n              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||\n                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&\n                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {\n                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);\n                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);\n                pppppppcStack_c8 = pppppppcStack_a0;\n                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);\n                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);\n                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);\n                do {\n                  param_4 = pppppppcVar36;\n                  if (pppppppcVar43 == (code *******)*param_4) {\n                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));\n                    if ((int)param_4[3] - (int)param_4[2] == 0) {\n                      pppppppcStack_cc =\n                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));\n                    }\n                    else {\n                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);\n                    }\n                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&\n                        (pppppppcVar25 = pppppppcStack_cc,\n                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&\n                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),\n                       puVar45 = puStack_d8, iVar40 != 0)) {\n                      pppppppcVar25 = pppppppcVar26 + 4;\n                      pppppppcStack_e0 = pppppppcStack_cc;\n                      pppppppcVar27 = pppppppcVar43;\n                      pppppppcVar28 = pppppppcVar31;\n                      pcStack_dc = pcVar46;\n                      pppppppcStack_b0 = pppppppcVar25;\n                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);\n                      puVar45 = puStack_d8;\n                      if (iVar40 == 0) {\n                        if (pppppppcStack_90 == (code *******)0x0) {\n                          pppppppcStack_90 = (code *******)*pppppppcVar26;\n                          pppppppcVar28 = (code *******)pppppppcVar26[1];\n                          pppppppcVar27 = (code *******)pppppppcVar26[2];\n                          pppppppcStack_84 = (code *******)pppppppcVar26[3];\n                          ppppppcStack_80 = pppppppcVar26[4];\n                          ppppppcStack_7c = pppppppcVar26[5];\n                          ppppppcStack_78 = pppppppcVar26[6];\n                          pppppppcVar25 = pppppppcStack_b0;\n                          pppppppcStack_8c = pppppppcVar28;\n                          pppppppcStack_88 = pppppppcVar27;\n                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        }\n                        pppppppcVar25 = pppppppcStack_c8;\n                        pppppppcStack_88 = pppppppcVar43;\n                        pppppppcStack_84 = pppppppcVar31;\n                        iVar40 = FUN_00019e64(&ppppppcStack_80);\n                        if (iVar40 == 0) {\n                          pppppppcVar36 = (code *******)0xc;\n                          puVar45 = puStack_d8;\n                          goto LAB_00025aa0;\n                        }\n                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];\n                        pppppppcVar25 = (code *******)&pppppppcStack_90;\n                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);\n                        puVar45 = puStack_d8;\n                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;\n                        pppppppcVar25 = (code *******)pppppppcVar26[1];\n                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);\n                        if ((pppppppcVar25 != (code *******)0x0) &&\n                           (pppppppcVar27 = pppppppcStack_90,\n                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),\n                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                        goto LAB_00025aa0;\n                        pppppppcVar36 = pppppppcStack_c8;\n                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;\n                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);\n                        pppppppcVar25 = (code *******)(iVar40 + -1);\n                        FUN_000188ac(&ppppppcStack_80);\n                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);\n                        puVar45 = puStack_d8;\n                      }\n                    }\n                  }\n                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);\n                  pppppppcVar36 = param_4 + 5;\n                } while (*(code *)(param_4 + 4) != (code)0x0);\n              }\n              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);\n              pppppppcVar36 = (code *******)0x0;\n            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);\nLAB_00025aa0:\n            if (pppppppcStack_90 != (code *******)0x0) {\n              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);\n              puVar45 = puStack_d8;\n            }\n          }\n        }\n      }\n    }\n  }\n  else {\n    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);\n    pppppppcVar27 = pppppppcVar31;\n    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;\n    pppppppcStack_90 = (code *******)0x0;\n    pppppppcVar27 = param_4;\n    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);\n    pppppppcVar36 = pppppppcStack_90;\n    puVar45 = puStack_d8;\n    if (pppppppcStack_90 == (code *******)0x0) {\n      pppppppcVar27 = unaff_s8 + 7;\n      if (unaff_s8[7] == (code ******)0x0) {\n        pppppppcStack_cc = unaff_s8 + 7;\n        pppppppcVar25 = (code *******)param_4[1];\n        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);\n        if (pppppppcStack_90 != (code *******)0x0) {\n          pppppppcVar36 = (code *******)0xc;\n          puVar45 = puStack_d8;\n          goto LAB_000253f8;\n        }\n        if (0 < (int)param_4[1]) {\n          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);\n          iVar40 = 0;\n          do {\n            pppppppcStack_90 = (code *******)0x0;\n            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);\n            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);\n            if (pppppppcStack_90 != (code *******)0x0) {\n              pppppppcVar36 = (code *******)0xc;\n              puVar45 = puStack_d8;\n              goto LAB_000253f8;\n            }\n            iVar40 = iVar40 + 1;\n          } while (iVar40 < (int)param_4[1]);\n        }\n      }\n      pppppppcVar27 = unaff_s8 + 7;\n      pppppppcVar25 = pppppppcVar6;\n      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);\n      puVar45 = puStack_d8;\n      pppppppcStack_b4 = pppppppcVar36;\n      pppppppcStack_94 = pppppppcVar36;\n      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n      if (pppppppcVar26[5] != (code ******)0x0) {\n        ppppppcStack_bc = pppppppcVar42[0x1d];\n        if (0 < (int)pppppppcVar26[5]) {\n          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);\n          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);\n          pppppppcStack_cc = (code *******)0x0;\n          do {\n            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;\n            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&\n               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {\n              pppppppcVar28 = (code *******)*pppppppcVar43;\n              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];\n              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {\n                if (0 < (int)param_4[1]) {\n                  ppppppcVar41 = param_4[2];\n                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];\n                  pppppppcStack_c4 = (code *******)0xffffffff;\n                  pppppppcVar25 = (code *******)0xffffffff;\n                  do {\n                    pppppppcVar38 = (code *******)*ppppppcVar41;\n                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;\n                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {\n                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {\n                        pppppppcVar25 = pppppppcVar38;\n                      }\n                    }\n                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&\n                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {\n                      pppppppcStack_c4 = pppppppcVar38;\n                    }\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                  } while (ppppppcVar41 != ppppppcVar39);\n                  if ((int)pppppppcVar25 < 0) {\n                    unaff_s8 = pppppppcStack_b4;\n                    if (-1 < (int)pppppppcStack_c4) {\n                      do {\n                        ppppppcVar41 = param_4[2];\nLAB_00025600:\n                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];\n                        pppppppcStack_c8 = pppppppcVar36;\n                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,\n                                               pppppppcStack_c4);\n                        if ((iVar40 == 0) &&\n                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,\n                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,\n                           iVar40 == 0)) {\n                          pppppppcVar25 = pppppppcStack_c8;\n                          pppppppcVar27 = param_4;\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                          puVar45 = puStack_d8;\n                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                          unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                        }\n                        unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                      } while ((int)unaff_s8 < (int)param_4[1]);\n                    }\n                  }\n                  else {\n                    pppppppcVar27 = param_4;\n                    pppppppcVar28 = pppppppcVar6;\n                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);\n                    puVar45 = puStack_d8;\n                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;\n                    if ((-1 < (int)pppppppcStack_c4) &&\n                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {\n                      ppppppcVar41 = param_4[2];\n                      goto LAB_00025600;\n                    }\n                  }\n                }\n              }\n              else {\n                unaff_s8 = pppppppcStack_b4;\n                if (0 < (int)param_4[1]) {\n                  do {\n                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];\n                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&\n                        (pppppppcVar28 = pppppppcVar6,\n                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))\n                       && (pppppppcVar27 = param_4,\n                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),\n                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))\n                    goto LAB_000253f8;\n                    unaff_s8 = (code *******)((int)unaff_s8 + 1);\n                  } while ((int)unaff_s8 < (int)param_4[1]);\n                }\n              }\n            }\n            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);\n          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);\n        }\n        pppppppcStack_94 = (code *******)0x0;\n      }\n      ppppppcVar41 = *pppppppcVar26;\n      pppppppcVar25 = pppppppcVar43;\n      pppppppcVar27 = param_4;\n      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);\n      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;\n      pppppppcVar36 = pppppppcStack_94;\n      puVar45 = puStack_d8;\n      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;\n      goto LAB_000253d8;\n    }\n  }\nLAB_000253f8:\n  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {\n    return pppppppcVar36;\n  }\n  pcVar46 = *(code **)(puVar45 + -0x7ddc);\n  pcVar47 = FUN_00025af4;\n  pppppppcVar38 = pppppppcStack_74;\n  (*pcVar46)();\n  pcStack_f4 = pcVar47;\n  pppppppcStack_f8 = unaff_s8;\n  ppppppcStack_fc = ppppppcVar4;\n  pppppppcStack_100 = pppppppcVar43;\n  pppppppcStack_104 = pppppppcVar42;\n  pppppppcStack_108 = pppppppcVar36;\n  pppppppcStack_10c = pppppppcVar6;\n  pppppppcStack_110 = pppppppcVar31;\n  pppppppcStack_114 = param_4;\n  pppppppcStack_118 = pppppppcVar26;\n  pcStack_158 = pcVar46 + 0x205dc;\n  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);\n  pppppppcVar31 = (code *******)pppppppcVar25[3];\n  pppppppcVar26 = (code *******)pppppppcVar25[2];\n  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);\n  if (pppppppcVar6 == (code *******)0x0) {\n    pppppppcVar28 = &ppppppcStack_128;\n    pppppppcVar26 = pppppppcVar25;\n    pppppppcVar27 = pppppppcVar31;\n    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);\n    pppppppcVar6 = pppppppcStack_13c;\n    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {\n      pppppppcStack_150 = pppppppcStack_13c;\n      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);\n      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);\n      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);\n      do {\n        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);\n        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {\n          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);\n        }\n        else {\n          pppppppcStack_150 = pppppppcStack_13c;\n        }\n        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {\n          pppppppcVar26 = (code *******)0x0;\n          pppppppcVar27 = unaff_s8;\n          (**(code **)(pcStack_158 + -0x7e40))();\n          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n          pppppppcVar6 = pppppppcStack_13c;\n          goto LAB_00025e98;\n        }\n        uStack_124 = 0;\n        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));\n        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);\n        if ((ppppppcVar4 != (code ******)0x0) &&\n           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {\n          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);\n          pppppppcVar43 = pppppppcStack_13c;\n          do {\n            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];\n            iStack_14c = (int)pppppppcVar26 * 8;\n            pppppppcVar28 = pppppppcVar31;\n            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {\nLAB_00025d44:\n              pppppppcVar27 = pppppppcVar31;\n              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);\n              if ((iVar40 != 0) &&\n                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {\n                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,\n                                        pppppppcVar42[3][(int)pppppppcVar26]);\n                pppppppcVar36 = (code *******)0x1;\n                if (iVar40 != 0) {\n                  ppppppcVar41 = pppppppcVar25[5];\n                  goto LAB_00025c9c;\n                }\n              }\n            }\n            else {\n              ppppppcStack_148 = pppppppcVar25[3];\n              ppppppcStack_134 = pppppppcVar38[0x15];\n              pppppppcVar27 = pppppppcVar38;\n              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);\n              if ((int)pppppppcVar36 < 1) {\n                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\n              else {\n                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&\n                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==\n                     (code *****)0x0 ||\n                    (iVar40 = (*pcStack_138)((*pppppppcVar25)\n                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,\n                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))\n                   )) goto LAB_00025d44;\n                ppppppcVar41 = pppppppcVar25[5];\n              }\nLAB_00025c9c:\n              if (ppppppcVar41 != (code ******)0x0) {\n                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];\n                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);\n                pppppppcStack_160 = pppppppcVar26;\n                pppppppcStack_15c = pppppppcVar31;\n                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);\n                if (iVar40 != 0) goto LAB_00025cfc;\n              }\n              iVar40 = (*pcStack_130)(&ppppppcStack_128);\n              if (iVar40 == 0) {\n                pppppppcVar6 = (code *******)0xc;\n                goto LAB_00025e84;\n              }\n            }\nLAB_00025cfc:\n            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);\n        }\n        pppppppcVar28 = &ppppppcStack_128;\n        pppppppcVar26 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);\n      } while ((pppppppcVar6 == (code *******)0x0) &&\n              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));\n    }\nLAB_00025e84:\n    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);\n  }\nLAB_00025e98:\n  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {\n    return pppppppcVar6;\n  }\n  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);\n  pcVar47 = FUN_00025ee8;\n  pppppppcVar34 = pppppppcStack_11c;\n  (*pcVar46)();\n  pcStack_218 = pcVar46 + 0x201e8;\n  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);\n  pppppppcStack_204 = (code *******)0x0;\n  pppppppcVar34[3] = (code ******)pppppppcVar28;\n  pppppppcVar34[2] = (code ******)0x0;\n  pppppppcVar34[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;\n  pppppppcVar32 = (code *******)*pppppppcVar34;\n  pppppppcVar29 = pppppppcVar28;\n  pppppppcStack_198 = pppppppcVar31;\n  pppppppcStack_194 = pppppppcVar38;\n  pppppppcStack_190 = pppppppcVar25;\n  pppppppcStack_18c = pppppppcVar6;\n  pppppppcStack_188 = pppppppcVar36;\n  pppppppcStack_184 = pppppppcVar42;\n  pppppppcStack_180 = pppppppcVar43;\n  ppppppcStack_17c = ppppppcVar4;\n  pppppppcStack_178 = unaff_s8;\n  pcStack_174 = pcVar47;\n  if (pppppppcVar34[1] < (code ******)0x88) {\n    pppppppcVar38 = (code *******)0x88;\n    pppppppcVar36 = pppppppcVar27;\n    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);\n    if (pppppppcVar32 != (code *******)0x0) {\n      pppppppcVar34[1] = (code ******)0x88;\n      *pppppppcVar34 = (code ******)pppppppcVar32;\n      goto LAB_00025f80;\n    }\n    pppppppcVar31 = (code *******)0xc;\n  }\n  else {\nLAB_00025f80:\n    pppppppcVar34[2] = (code ******)0x88;\n    pppppppcVar36 = (code *******)0x88;\n    pppppppcVar38 = (code *******)0x0;\n    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);\n    pppppppcVar32[0x10] = (code ******)0x1f;\n    if (pppppppcVar27 < (code *******)0xaaaaaaa) {\n      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);\n      ppppppcVar4 = (code ******)\n                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);\n      *pppppppcVar32 = ppppppcVar4;\n      if (pppppppcVar27 == (code *******)0x0) {\n        pppppppcVar6 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar6 = (code *******)0x1;\n        do {\n          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);\n        } while (pppppppcVar6 <= pppppppcVar27);\n      }\n      pppppppcVar38 = pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);\n      pppppppcVar32[8] = ppppppcVar4;\n      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);\n      pppppppcVar32[0x11] = (code ******)pppppppcVar6;\n      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();\n      pppppppcVar32[0x17] = ppppppcVar4;\n      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);\n      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&\n         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {\n        iVar40 = 3;\n        if (pbVar7[3] == 0x2d) {\n          iVar40 = 4;\n        }\n        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);\n        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);\n        if (iVar40 == 0) {\n          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;\n        }\n      }\n      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;\n      if (1 < (int)pppppppcVar32[0x17]) {\n        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {\n          pppppppcVar38 = (code *******)0x1;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);\n          pppppppcVar32[0xf] = ppppppcVar4;\n          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;\n          pppppppcVar42 = (code *******)0x0;\n          unaff_s8 = (code *******)0x1;\n          do {\n            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);\n            uVar21 = 0;\n            do {\n              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);\n              if (pppppppcVar31 != (code *******)0xffffffff) {\n                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);\n                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =\n                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);\n              }\n              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {\n                *(byte *)(pppppppcVar32 + 0x16) =\n                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;\n              }\n              uVar21 = uVar21 + 1;\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n            } while (uVar21 != 0x20);\n            pppppppcVar42 = pppppppcVar42 + 1;\n            pppppppcVar43 = (code *******)0x20;\n          } while (pppppppcVar42 != (code *******)0x20);\n        }\n        else {\n          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);\n        }\n      }\n      if ((*pppppppcVar32 != (code ******)0x0) &&\n         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar43 = (code *******)pppppppcVar34[5];\n        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);\n        bVar19 = pppppppcVar42 != (code *******)0x0;\n        unaff_s8 = (code *******)(uint)bVar19;\n        pppppppcVar36 = (code *******)0x4c;\n        pppppppcVar38 = (code *******)0x0;\n        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);\n        if (pppppppcVar43 != (code *******)0x0) {\n          unaff_s8 = (code *******)0x1;\n        }\n        cStack_1a5 = (char)unaff_s8;\n        ppppppcStack_1a0 = pppppppcVar32[0x17];\n        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);\n        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);\n        pppppppcStack_1f0 = pppppppcVar26;\n        pppppppcStack_1c4 = pppppppcVar27;\n        pppppppcStack_1c0 = pppppppcVar27;\n        pppppppcStack_1bc = pppppppcVar27;\n        pppppppcStack_1b8 = pppppppcVar27;\n        pppppppcStack_1b0 = pppppppcVar43;\n        uStack_1a8 = bVar19;\n        if (0 < (int)pppppppcVar27) {\n          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);\n          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;\n          goto LAB_000261b4;\n        }\nLAB_00026118:\n        if (cStack_1a5 != '\0') {\n          pppppppcVar26 = apppppppcStack_1ec[0];\n        }\n        apppppppcStack_1ec[0] = pppppppcVar26;\n        if (pppppppcVar42 == (code *******)0x0) {\n          if ((int)pppppppcVar32[0x17] < 2) {\n            if (pppppppcVar43 != (code *******)0x0) {\n              FUN_00018720();\n            }\n          }\n          else {\n            FUN_0001a644(&pppppppcStack_1f0);\n          }\n        }\n        else {\n          if (1 < (int)pppppppcVar32[0x17]) {\n            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);\n            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);\n            do {\n              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);\n              pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n              if (pppppppcVar25 != (code *******)0x0) break;\n              if (((int)pppppppcVar27 <= iStack_1d0) ||\n                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),\n                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;\n              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);\n            } while (pppppppcVar25 == (code *******)0x0);\n            goto LAB_000261b4;\n          }\n          FUN_0001a578(&pppppppcStack_1f0);\n        }\nLAB_000263f8:\n        pppppppcStack_204 = (code *******)0x0;\n        pppppppcVar34[6] = (code ******)0x0;\n        pppppppcVar43 = (code *******)*pppppppcVar34;\n        pppppppcVar43[0x20] = (code ******)pppppppcVar28;\n        pppppppcVar31 = (code *******)&pppppppcStack_1f0;\n        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);\n        pppppppcStack_21c = (code *******)&pppppppcStack_204;\n        uStack_220 = 0;\n        pppppppcVar38 = pppppppcVar34;\n        pppppppcVar6 = (code *******)\n                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);\n        pppppppcVar29 = (code *******)0x2;\n        if (pppppppcStack_204 == (code *******)0x0) {\n          pppppppcVar36 = (code *******)0x0;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar6 != (code *******)0x0) {\nLAB_000264d8:\n            pppppppcVar29 = (code *******)0x10;\n            pppppppcVar38 = pppppppcVar6;\n            pppppppcVar36 = pppppppcVar27;\n            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);\n          }\n          if ((pppppppcVar27 == (code *******)0x0) ||\n             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {\n            pppppppcStack_204 = (code *******)0xc;\n            goto LAB_0002671c;\n          }\n          pppppppcVar32[0xd] = (code ******)pppppppcVar31;\n          pppppppcVar27 = (code *******)*pppppppcVar34;\n          ppppppcVar4 = pppppppcVar27[1];\n          iVar40 = (int)ppppppcVar4 << 2;\n          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);\n          pppppppcVar27[3] = (code ******)pppppppcVar28;\n          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);\n          pppppppcVar27[4] = (code ******)pppppppcVar43;\n          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);\n          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[5] = (code ******)pppppppcVar26;\n          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);\n          pppppppcVar27[6] = ppppppcVar4;\n          pppppppcVar31 = pppppppcVar27;\n          if (pppppppcVar28 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar43 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (pppppppcVar26 == (code *******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else if (ppppppcVar4 == (code ******)0x0) {\n            pppppppcVar25 = (code *******)0xc;\n          }\n          else {\n            ppppppcVar4 = (code ******)\n                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);\n            pppppppcVar27[0x21] = ppppppcVar4;\n            if (ppppppcVar4 != (code ******)0x0) {\n              ppppppcVar4 = (code ******)0x0;\n              if (pppppppcVar34[6] != (code ******)0x0) {\n                do {\n                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;\n                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                } while (ppppppcVar4 < pppppppcVar34[6]);\n              }\n              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,\n                           pppppppcVar27);\n              ppppppcVar4 = pppppppcVar34[6];\n              if (ppppppcVar4 == (code ******)0x0) {\nLAB_0002672c:\n                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);\n                pppppppcVar27[0x21] = (code ******)0x0;\n              }\n              else {\n                ppppppcVar41 = pppppppcVar27[0x21];\n                if (*ppppppcVar41 == (code *****)0x0) {\n                  ppppppcVar39 = (code ******)0x0;\n                  do {\n                    ppppppcVar41 = ppppppcVar41 + 1;\n                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                    if (ppppppcVar4 == ppppppcVar39) {\n                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;\n                      break;\n                    }\n                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);\n                }\n              }\n            }\n            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);\n            pppppppcVar25 =\n                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);\n            pppppppcVar36 = pppppppcVar27;\n            if (pppppppcVar25 == (code *******)0x0) {\n              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);\n              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);\n              if (pppppppcVar25 == (code *******)0x0) {\n                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);\n                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);\n                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);\n                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);\n                pppppppcVar25 = pppppppcVar26;\n                if (pppppppcVar26 == (code *******)0x0) {\n                  pppppppcVar43 = (code *******)0x0;\n                  unaff_s8 = &ppppppcStack_1fc;\n                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);\n                  pppppppcVar6 = (code *******)0x0;\n                  pcVar46 = pcStack_218;\nLAB_0002676c:\n                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {\nLAB_00026778:\n                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);\n                    pppppppcVar29 = (code *******)0x1;\n                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==\n                        (code *****)0x0) {\n                      pppppppcVar38 = pppppppcVar27;\n                      pppppppcVar36 = pppppppcVar6;\n                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);\n                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;\n                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);\n                      pcVar46 = pcStack_218;\n                      if (pppppppcVar28[1] == (code ******)0x0) {\n                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                        pppppppcVar43 = (code *******)0x1;\n                        pcVar46 = pcStack_218;\n                      }\n                    }\n                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n                    goto LAB_0002676c;\n                  }\n                  if (pppppppcVar43 != (code *******)0x0) {\n                    pppppppcVar43 = (code *******)0x0;\n                    pppppppcVar6 = (code *******)0x0;\n                    goto LAB_00026778;\n                  }\n                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&\n                      (pppppppcVar34[6] != (code ******)0x0)) &&\n                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  else {\n                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;\n                    pppppppcVar6 = (code *******)pppppppcVar27[2];\n                  }\n                  ppppppcVar4 = (code ******)\n                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);\n                  pppppppcVar27[7] = ppppppcVar4;\n                  if (ppppppcVar4 == (code ******)0x0) {\n                    pppppppcVar25 = (code *******)0xc;\n                    goto LAB_000261b4;\n                  }\n                  pcVar46 = pcStack_218;\n                  if (pppppppcVar6 != (code *******)0x0) {\n                    iVar40 = 0;\n                    ppppppcVar4 = (code ******)0x0;\n                    do {\n                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);\n                      *pcVar47 = (code)0x0;\n                      pcVar47[1] = (code)0x0;\n                      pcVar47[2] = (code)0x0;\n                      pcVar47[3] = (code)0x0;\n                      pcVar47[4] = (code)0x0;\n                      pcVar47[5] = (code)0x0;\n                      pcVar47[6] = (code)0x0;\n                      pcVar47[7] = (code)0x0;\n                      pcVar47[8] = (code)0x0;\n                      pcVar47[9] = (code)0x0;\n                      pcVar47[10] = (code)0x0;\n                      pcVar47[0xb] = (code)0x0;\n                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);\n                      iVar40 = iVar40 + 0xc;\n                    } while (ppppppcVar4 < pppppppcVar27[2]);\n                    if (pppppppcVar27[2] != (code ******)0x0) {\n                      unaff_s8 = (code *******)0x0;\n                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);\n                      pppppppcStack_210 = (code *******)0x0;\n                      do {\n                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))\n                        ;\n                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {\n                          pppppppcVar28 = (code *******)0x0;\n                          do {\n                            pppppppcVar38 = pppppppcStack_210;\n                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);\n                            pppppppcVar25 = (code *******)0xc;\n                            if (iVar40 == 0) goto LAB_000261b4;\n                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);\n                            pppppppcVar6 = pppppppcVar6 + 1;\n                            pcVar46 = pcStack_218;\n                          } while ((int)pppppppcVar28 <\n                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));\n                        }\n                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);\n                        unaff_s8 = unaff_s8 + 3;\n                      } while (pppppppcStack_210 < pppppppcVar27[2]);\n                    }\n                  }\nLAB_00026918:\n                  pppppppcStack_204 = (code *******)0x0;\n                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&\n                      (pppppppcVar42 == (code *******)0x0)) &&\n                     (pppppppcVar34[5] == (code ******)0x0)) {\n                    pppppppcVar6 = pppppppcVar43;\n                    if (pppppppcVar32[2] != (code ******)0x0) {\n                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);\n                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {\n                    \n                    \n                        pppppppcVar26 =\n                             (code *******)\n                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();\n                        return pppppppcVar26;\n                      }\n                      (**(code **)(pcVar46 + -0x7ea4))(0);\n                      if (pppppppcVar6 != (code *******)0x0) {\n                        pppppppcVar36 = (code *******)0x7;\n                        pppppppcVar26 = (code *******)0x0;\n                        do {\n                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;\n                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {\n                            if (*(char *)ppppppcVar4 < '\0') {\n                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);\n                            }\n                          }\n                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {\n                            *(char *)(ppppppcVar4 + 1) = '\a';\n                          }\n                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);\n                        } while (pppppppcVar26 < pppppppcVar32[2]);\n                      }\n                    }\n                    pppppppcVar32[0x17] = (code ******)0x1;\n                    if (0 < (int)pppppppcVar32[0x13]) {\n                      pppppppcVar6 = (code *******)0x1;\n                    }\n                    *(byte *)(pppppppcVar32 + 0x16) =\n                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |\n                         (byte)(((uint)pppppppcVar6 & 1) << 6);\n                  }\n                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];\n                  pppppppcVar32[0x12] = ppppppcVar4;\n                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);\n                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);\n                  pppppppcVar6 = pppppppcVar31;\n                  pppppppcStack_200 = pppppppcVar31;\n                  if (pppppppcVar31 == (code *******)0x0) {\n                    if ((0 < (int)pppppppcVar32[0x13]) &&\n                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {\n                      pppppppcVar42 = &ppppppcStack_1fc;\n                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);\n                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);\n                      pppppppcVar27 = (code *******)0x0;\n                      do {\n                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];\n                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);\n                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {\n                          iVar40 = 0;\n                          piVar8 = piStack_1f4;\n                          if (iStack_1f8 < 1) {\nLAB_00026bb4:\n                            if (iVar40 != iStack_1f8) {\n                              pppppppcVar26 =\n                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];\n                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);\n                              if (iVar40 == 0) {\n                                pppppppcVar38 =\n                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);\n                                pppppppcVar27 =\n                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);\n                                pppppppcVar6 = pppppppcVar27;\n                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;\n                              }\n                            }\n                          }\n                          else {\n                            do {\n                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;\n                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&\n                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;\n                              iVar40 = iVar40 + 1;\n                              piVar8 = piVar8 + 1;\n                            } while (iStack_1f8 != iVar40);\n                          }\n                        }\n                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                      } while ((int)pppppppcVar27 < iStack_1f8);\n                    }\n                    pppppppcVar29 = (code *******)0x0;\n                    pppppppcVar36 = &ppppppcStack_1fc;\n                    pppppppcVar38 = pppppppcVar32;\n                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);\n                    pppppppcVar32[9] = ppppppcVar4;\n                    pppppppcVar6 = pppppppcStack_200;\n                    if (ppppppcVar4 != (code ******)0x0) {\n                      pppppppcVar29 = (code *******)0x1;\n                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar32[10] = ppppppcVar4;\n                      }\n                      else {\n                        pppppppcVar42 = &ppppppcStack_1fc;\n                        pppppppcVar28 = (code *******)&pppppppcStack_200;\n                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);\n                        pppppppcVar32[10] = ppppppcVar4;\n                        ppppppcVar4 = (code ******)\n                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);\n                        pppppppcVar32[0xb] = ppppppcVar4;\n                        pppppppcVar29 = (code *******)0x6;\n                        pppppppcVar38 = pppppppcVar32;\n                        pppppppcVar36 = pppppppcVar42;\n                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);\n                        pppppppcVar32[0xc] = ppppppcVar4;\n                        pppppppcVar6 = pppppppcStack_200;\n                        if (((pppppppcVar32[10] == (code ******)0x0) ||\n                            (pppppppcVar32[0xb] == (code ******)0x0)) ||\n                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;\n                      }\n                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);\n                      pppppppcVar6 = pppppppcVar31;\n                    }\n                  }\nLAB_00026ce0:\n                  pppppppcStack_204 = pppppppcVar6;\n                  FUN_0001db98(pppppppcVar34);\n                  FUN_0001dc20(&pppppppcStack_1f0);\n                  pppppppcVar31 = pppppppcStack_204;\n                  if (pppppppcStack_204 != (code *******)0x0) {\n                    FUN_0001dc9c(pppppppcVar32);\n                    *pppppppcVar34 = (code ******)0x0;\n                    pppppppcVar34[1] = (code ******)0x0;\n                    pppppppcVar31 = pppppppcStack_204;\n                  }\n                  goto LAB_00026d24;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pppppppcVar36 = (code *******)0x0;\n          if (pppppppcVar6 != (code *******)0x0) {\n            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);\n            goto LAB_000264d8;\n          }\nLAB_0002671c:\n          pppppppcVar32[0xd] = (code ******)0x0;\n          pppppppcVar25 = pppppppcStack_204;\n        }\nLAB_000261b4:\n        pppppppcStack_204 = pppppppcVar25;\n        pppppppcVar27 = pppppppcVar31;\n        FUN_0001db98(pppppppcVar34);\n        FUN_0001dc20(&pppppppcStack_1f0);\n        FUN_0001dc9c(pppppppcVar32);\n        *pppppppcVar34 = (code ******)0x0;\n        pppppppcVar34[1] = (code ******)0x0;\n        pppppppcVar31 = pppppppcStack_204;\n        goto LAB_00026d24;\n      }\n    }\nLAB_00026e64:\n    pppppppcStack_204 = (code *******)0xc;\n    FUN_0001dc9c(pppppppcVar32);\n    *pppppppcVar34 = (code ******)0x0;\n    pppppppcVar34[1] = (code ******)0x0;\n    pppppppcVar31 = pppppppcStack_204;\n  }\nLAB_00026d24:\n  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {\n    return pppppppcVar31;\n  }\n  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);\n  uVar48 = 0x26e9c;\n  pppppppcVar31 = pppppppcStack_19c;\n  (*pcVar46)();\n  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);\n  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);\n  pppppppcVar25 = pppppppcVar38;\n  pppppppcStack_258 = pppppppcVar32;\n  pppppppcStack_254 = pppppppcVar34;\n  pppppppcStack_250 = pppppppcVar27;\n  pppppppcStack_24c = pppppppcVar6;\n  pppppppcStack_248 = pppppppcVar28;\n  pppppppcStack_244 = pppppppcVar42;\n  pppppppcStack_240 = pppppppcVar43;\n  pppppppcStack_23c = pppppppcVar26;\n  pppppppcStack_238 = unaff_s8;\n  uStack_234 = uVar48;\n  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);\n  if (pppppppcStack_2ec == (code *******)0x0) {\n    pppppppcVar43 = (code *******)0x0;\n  }\n  else {\n    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;\n    pppppppcVar38[0xb] = (code ******)0x0;\n    pppppppcVar38[0xc] = (code ******)0x0;\n    pppppppcStack_2e4 = pppppppcStack_2ec;\n    FUN_0001a53c(appppppcStack_2bc);\n    pppppppcVar43 = pppppppcStack_300;\n    if ((int)pppppppcVar38[2] < 1) {\n      pppppppcVar27 = (code *******)0x0;\n    }\n    else {\n      pppppppcVar27 = (code *******)0x0;\n      pppppppcStack_2f4 = (code *******)0x0;\n      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;\n      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;\n      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;\n      do {\n        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);\n        pppppppcVar6 = (code *******)\n                       (*pppppppcVar31 +\n                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);\n        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);\n        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);\n        if (pppppppcVar26 == (code *******)0x1) {\n          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);\n          pppppppcVar43 = pppppppcStack_300;\nLAB_00026f88:\n          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;\n          if (((uint)pppppppcVar32 & 0x20) != 0) {\n            pppppppcVar34 = appppppcStack_2bc;\n            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);\n            FUN_0001a53c(pppppppcVar34);\n            pppppppcVar43 = pppppppcStack_300;\n            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;\n            FUN_00018540(appppppcStack_2bc,10);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n          if (((uint)pppppppcVar32 & 0x80) == 0) {\n            if (((uint)pppppppcVar32 & 4) == 0) {\nLAB_0002700c:\n              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);\n              if (pppppppcVar32 == (code *******)0x0) {\nLAB_00027078:\n                if ((int)pppppppcVar27 < 1) {\n                  pppppppcVar34 = (code *******)0x0;\n                }\n                else {\n                  pppppppcVar32 = pppppppcStack_2ec + 0x300;\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];\n                  pppppppcVar42 = pppppppcStack_2ec;\n                  do {\n                    if ((pppppppcVar26 != (code *******)0x1) ||\n                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),\n                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {\n                      pppppppcVar37 = appppppcStack_2bc;\n                      uVar21 = 0;\n                      pppppppcVar25 = pppppppcVar37;\n                      pppppppcVar36 = pppppppcVar32;\n                      pppppppcVar29 = appppppcStack_2bc + 8;\n                      do {\n                        ppppppcVar4 = *pppppppcVar25;\n                        ppppppcVar41 = *pppppppcVar36;\n                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);\n                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;\n                        pppppppcVar25 = pppppppcVar25 + 1;\n                        pppppppcVar36 = pppppppcVar36 + 1;\n                        pppppppcVar29 = pppppppcVar29 + 1;\n                      } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                      if (uVar21 != 0) {\n                        pppppppcVar36 = appppppcStack_27c;\n                        pppppppcVar28 = (code *******)0x0;\n                        uVar21 = 0;\n                        pppppppcVar43 = pppppppcVar32;\n                        do {\n                          pppppppcVar29 = (code *******)*pppppppcVar37;\n                          ppppppcVar4 = *pppppppcVar43;\n                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);\n                          *pppppppcVar36 = ppppppcVar41;\n                          uVar21 = uVar21 | (uint)ppppppcVar41;\n                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);\n                          *pppppppcVar37 = ppppppcVar4;\n                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);\n                          pppppppcVar37 = pppppppcVar37 + 1;\n                          pppppppcVar43 = pppppppcVar43 + 1;\n                          pppppppcVar36 = pppppppcVar36 + 1;\n                        } while (pppppppcVar43 != pppppppcVar32 + 8);\n                        if (uVar21 != 0) {\n                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                          *pppppppcVar43 = appppppcStack_27c[0];\n                          pppppppcVar43[1] = appppppcStack_27c[1];\n                          pppppppcVar43[2] = appppppcStack_27c[2];\n                          pppppppcVar43[3] = appppppcStack_27c[3];\n                          pppppppcVar43[4] = ppppppcStack_26c;\n                          pppppppcVar43[5] = ppppppcStack_268;\n                          pppppppcVar43[6] = ppppppcStack_264;\n                          pppppppcVar43[7] = ppppppcStack_260;\n                          *pppppppcVar32 = appppppcStack_2bc[8];\n                          pppppppcVar32[1] = appppppcStack_2bc[9];\n                          pppppppcVar32[2] = appppppcStack_2bc[10];\n                          pppppppcVar32[3] = appppppcStack_2bc[0xb];\n                          pppppppcVar32[4] = ppppppcStack_28c;\n                          pppppppcVar32[5] = ppppppcStack_288;\n                          pppppppcVar32[6] = ppppppcStack_284;\n                          pppppppcVar32[7] = ppppppcStack_280;\n                          iVar40 = (*(code *)ppppppcStack_2dc)\n                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                              pppppppcVar42);\n                          if (iVar40 != 0) goto LAB_000275d4;\n                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                        }\n                        iVar40 = (*(code *)ppppppcStack_2e8)\n                                           (pppppppcVar42,\n                                            *(undefined4 *)\n                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                        if (iVar40 == 0) goto LAB_000275d4;\n                        pppppppcVar43 = pppppppcStack_300;\n                        if (pppppppcVar28 == (code *******)0x0) break;\n                      }\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar32 = pppppppcVar32 + 8;\n                    pppppppcVar42 = pppppppcVar42 + 3;\n                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);\n                }\n                if (pppppppcVar27 == pppppppcVar34) {\n                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;\n                  *pppppppcVar43 = appppppcStack_2bc[0];\n                  pppppppcVar43[1] = appppppcStack_2bc[1];\n                  pppppppcVar43[2] = appppppcStack_2bc[2];\n                  pppppppcVar43[3] = appppppcStack_2bc[3];\n                  pppppppcVar43[4] = appppppcStack_2bc[4];\n                  pppppppcVar43[5] = appppppcStack_2bc[5];\n                  pppppppcVar43[6] = appppppcStack_2bc[6];\n                  pppppppcVar43[7] = appppppcStack_2bc[7];\n                  iVar40 = (*(code *)ppppppcStack_2d8)\n                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,\n                                      *(undefined4 *)\n                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));\n                  if (iVar40 != 0) {\nLAB_000275d4:\n                    if ((int)pppppppcVar27 < 1) {\n                      pppppppcVar27 = (code *******)0xffffffff;\n                      pppppppcVar43 = pppppppcStack_300;\n                    }\n                    else {\n                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n                      pppppppcVar32 = pppppppcStack_2ec;\n                      do {\n                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n                        pppppppcVar32 = pppppppcVar32 + 3;\n                        pppppppcVar27 = (code *******)0xffffffff;\n                        pppppppcVar43 = pppppppcStack_300;\n                      } while (pppppppcVar32 != pppppppcVar34);\n                    }\n                    goto LAB_00027610;\n                  }\n                  FUN_0001a53c(appppppcStack_2bc);\n                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);\n                  pppppppcVar43 = pppppppcStack_300;\n                }\n              }\n              else if ((pppppppcVar26 == (code *******)0x1) &&\n                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {\n                FUN_0001a53c(appppppcStack_2bc);\n                pppppppcVar43 = pppppppcStack_300;\n              }\n              else {\n                pppppppcVar25 = appppppcStack_2bc;\n                if ((int)pppppppcVar31[0x17] < 2) {\n                  pppppppcVar37 = pppppppcVar31 + 0x18;\n                  pppppppcVar29 = appppppcStack_2bc + 8;\n                  uVar21 = 0;\n                  do {\n                    ppppppcVar4 = *pppppppcVar37;\n                    pppppppcVar36 = (code *******)*pppppppcVar25;\n                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);\n                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar37 = pppppppcVar37 + 1;\n                  } while (pppppppcVar25 != pppppppcVar29);\n                }\n                else {\n                  pppppppcVar36 = pppppppcVar31 + 0x18;\n                  ppppppcVar4 = pppppppcVar31[0xf];\n                  uVar21 = 0;\n                  do {\n                    pppppppcVar29 = (code *******)*pppppppcVar25;\n                    ppppppcVar41 = (code ******)\n                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &\n                                   (uint)pppppppcVar29);\n                    *pppppppcVar25 = ppppppcVar41;\n                    uVar21 = uVar21 | (uint)ppppppcVar41;\n                    pppppppcVar25 = pppppppcVar25 + 1;\n                    pppppppcVar36 = pppppppcVar36 + 1;\n                    ppppppcVar4 = ppppppcVar4 + 1;\n                  } while (pppppppcVar25 != appppppcStack_2bc + 8);\n                }\n                if (uVar21 != 0) goto LAB_00027078;\n              }\n            }\n            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))\n            {\n              FUN_0001a53c(appppppcStack_2bc);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            else {\n              ppppppcVar4 = (code ******)appppppcStack_2bc;\n              if ((int)pppppppcVar31[0x17] < 2) {\n                pppppppcVar25 = appppppcStack_2bc;\n                pppppppcVar37 = pppppppcVar31 + 0x18;\n                pppppppcVar29 = appppppcStack_2bc + 8;\n                uVar21 = 0;\n                do {\n                  ppppppcVar4 = *pppppppcVar25;\n                  pppppppcVar36 = (code *******)*pppppppcVar37;\n                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);\n                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;\n                  pppppppcVar25 = pppppppcVar25 + 1;\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (pppppppcVar25 != pppppppcVar29);\n              }\n              else {\n                pppppppcVar36 = pppppppcVar31 + 0x18;\n                ppppppcVar41 = pppppppcVar31[0xf];\n                uVar21 = 0;\n                do {\n                  pppppppcVar29 = (code *******)*ppppppcVar4;\n                  pppppcVar5 = (code *****)\n                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)\n                  ;\n                  *ppppppcVar4 = pppppcVar5;\n                  uVar21 = uVar21 | (uint)pppppcVar5;\n                  ppppppcVar4 = ppppppcVar4 + 1;\n                  pppppppcVar36 = pppppppcVar36 + 1;\n                  ppppppcVar41 = ppppppcVar41 + 1;\n                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);\n              }\n              if (uVar21 != 0) goto LAB_0002700c;\n            }\n          }\n          else {\n            FUN_0001a53c(appppppcStack_2bc);\n            pppppppcVar43 = pppppppcStack_300;\n          }\n        }\n        else {\n          if (pppppppcVar26 == (code *******)0x3) {\n            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);\n            pppppppcVar43 = pppppppcStack_300;\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)&DAT_00000005) {\n            if ((int)pppppppcVar31[0x17] < 2) {\n              appppppcStack_2bc[0] = (code ******)0xffffffff;\n              appppppcStack_2bc[1] = (code ******)0xffffffff;\n              appppppcStack_2bc[2] = (code ******)0xffffffff;\n              appppppcStack_2bc[3] = (code ******)0xffffffff;\n              appppppcStack_2bc[4] = (code ******)0xffffffff;\n              appppppcStack_2bc[5] = (code ******)0xffffffff;\n              appppppcStack_2bc[6] = (code ******)0xffffffff;\n              appppppcStack_2bc[7] = (code ******)0xffffffff;\n            }\n            else {\n              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);\n              pppppppcVar43 = pppppppcStack_300;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n          if (pppppppcVar26 == (code *******)0x7) {\n            appppppcStack_2bc[0] = (code ******)0xffffffff;\n            appppppcStack_2bc[1] = (code ******)0xffffffff;\n            appppppcStack_2bc[2] = (code ******)0xffffffff;\n            appppppcStack_2bc[3] = (code ******)0xffffffff;\n            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {\n              appppppcStack_2bc[0] = (code ******)0xfffffbff;\n            }\n            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {\n              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);\n            }\n            goto LAB_00026f88;\n          }\n        }\nLAB_00027478:\n        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);\n      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);\n      if (0 < (int)pppppppcVar27) {\n        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);\n        pppppppcStack_2cc = pppppppcStack_2f8;\n        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))\n        {\n          iStack_2d4 = (int)pppppppcVar27 * 0xc;\n          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);\n          if (pppppppcStack_2f0 != (code *******)0x0) {\n            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;\n            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;\n            FUN_0001a53c(appppppcStack_27c);\n            pppppppcVar42 = pppppppcStack_2ec + 1;\n            pppppppcStack_2f4 = pppppppcStack_2f8;\n            ppppppcStack_2d8 = (code ******)0x0;\n            pppppppcVar28 = &ppppppcStack_2c8;\n            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);\n            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;\n            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;\n            do {\n              uStack_2c4 = 0;\n              if (0 < (int)*pppppppcVar42) {\n                pppppppcVar6 = (code *******)0xffffffff;\n                pppppppcVar43 = pppppppcStack_2f8;\n                do {\n                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=\n                      (code *****)0xffffffff) {\n                    pppppppcVar25 =\n                         (code *******)\n                         (pppppppcVar31[6] +\n                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);\n                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);\n                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;\n                  }\n                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);\n                  pppppppcVar29 = (code *******)0x0;\n                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);\n              }\n              pppppppcVar29 = (code *******)0x0;\n              pppppppcVar25 = pppppppcVar31;\n              pppppppcVar36 = pppppppcVar28;\n              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n              pppppppcVar43 = pppppppcStack_2f4;\n              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;\n              *pppppppcVar6 = ppppppcVar4;\n              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                goto LAB_00027798;\n              }\n              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {\n                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;\n                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;\n              }\n              else {\n                pppppppcVar29 = (code *******)0x1;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {\n                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                  goto LAB_00027798;\n                }\n                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {\n                  ppppppcStack_2d8 = (code ******)0x1;\n                }\n                pppppppcVar29 = (code *******)0x2;\n                pppppppcVar25 = pppppppcVar31;\n                pppppppcVar36 = pppppppcVar28;\n                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);\n                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;\n                if ((ppppppcVar4 == (code ******)0x0) &&\n                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))\n                goto LAB_00027794;\n              }\n              pppppppcVar32 = pppppppcStack_2ec;\n              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);\n              (*(code *)ppppppcStack_2dc)\n                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);\n              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);\n              pppppppcVar42 = pppppppcVar42 + 3;\n            } while (pppppppcStack_2f4 != pppppppcVar27);\n            pppppppcVar25 = (code *******)0x100;\n            if (ppppppcStack_2d8 == (code ******)0x0) {\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xb] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) {\nLAB_00027794:\n                ppppppcVar4 = pppppppcStack_300[-0x1f6c];\n                pppppppcVar43 = pppppppcVar6;\nLAB_00027798:\n                (*(code *)ppppppcVar4)(pppppppcStack_2f0);\n                pppppppcVar6 = pppppppcVar43;\n                goto LAB_000277a4;\n              }\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar31 = pppppppcVar31 + 0x18;\n              pppppppcVar25 = (code *******)0x0;\n              pppppppcVar43 = pppppppcVar32;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                pppppppcVar29 = pppppppcVar25;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar36 = pppppppcStack_2f8;\n                      pppppppcVar34 = pppppppcVar43;\n                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {\n                        do {\n                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);\n                          pppppppcVar37 = pppppppcVar34 + 0x308;\n                          pppppppcVar34 = pppppppcVar34 + 8;\n                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);\n                      }\n                      else {\n                        pppppppcVar36 = (code *******)0x0;\n                      }\n                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2f0;\n                      }\n                      else {\n                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];\n                        pppppppcVar36 = pppppppcStack_2e4;\n                      }\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 8;\n                pppppppcVar31 = pppppppcVar31 + 1;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar25 != (code *******)0x100);\n            }\n            else {\n              pppppppcVar25 = (code *******)0x200;\n              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n              pppppppcVar38[0xc] = (code ******)pppppppcVar28;\n              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;\n              ppppppcVar4 = (code ******)appppppcStack_27c;\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar25 = pppppppcVar28;\n              do {\n                pppppcVar5 = *ppppppcVar4;\n                if (pppppcVar5 != (code *****)0x0) {\n                  uVar21 = 1;\n                  pppppppcVar29 = pppppppcVar25;\n                  do {\n                    if (((uint)pppppcVar5 & 1) != 0) {\n                      pppppppcVar34 = (code *******)0x0;\n                      ppppppcVar41 = pppppppcVar43[0x300];\n                      pppppppcVar37 = pppppppcVar43;\n                      pppppppcVar2 = pppppppcStack_2f8;\n                      while ((uVar21 & (uint)ppppppcVar41) == 0) {\n                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);\n                        pppppppcVar36 = pppppppcVar37 + 8;\n                        ppppppcVar41 = pppppppcVar37[0x308];\n                        pppppppcVar37 = pppppppcVar36;\n                        pppppppcVar2 = pppppppcVar34;\n                      }\n                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];\n                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];\n                    }\n                    uVar21 = uVar21 << 1;\n                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);\n                    pppppppcVar29 = pppppppcVar29 + 1;\n                  } while (pppppcVar5 != (code *****)0x0);\n                }\n                ppppppcVar4 = ppppppcVar4 + 1;\n                pppppppcVar25 = pppppppcVar25 + 0x20;\n                pppppppcVar43 = pppppppcVar43 + 1;\n              } while (pppppppcVar28 + 0x100 != pppppppcVar25);\n            }\n            pppppppcVar25 = (code *******)0xa;\n            iVar40 = FUN_00018598(appppppcStack_27c);\n            if (iVar40 != 0) {\n              pppppppcVar43 = pppppppcStack_2ec + 0x300;\n              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);\n              do {\n                pppppppcVar42 = pppppppcStack_2f8;\n                pppppppcVar25 = (code *******)0xa;\n                iVar40 = FUN_00018598(pppppppcVar43);\n                if (iVar40 != 0) {\n                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];\n                  pppppppcVar28[10] = ppppppcVar4;\n                  if (ppppppcStack_2d8 != (code ******)0x0) {\n                    pppppppcVar28[0x10a] = ppppppcVar4;\n                  }\n                  break;\n                }\n                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);\n                pppppppcVar43 = pppppppcVar43 + 8;\n              } while (pppppppcStack_2f8 != pppppppcVar27);\n            }\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);\n            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);\n            do {\n              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n              pppppppcVar32 = pppppppcVar32 + 3;\n            } while (pppppppcVar34 != pppppppcVar32);\n            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n            pppppppcVar43 = (code *******)0x1;\n            goto LAB_00027804;\n          }\n        }\nLAB_000277a4:\n        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);\n        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;\n        pppppppcVar32 = pppppppcStack_2ec;\n        do {\n          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);\n          pppppppcVar32 = pppppppcVar32 + 3;\n        } while (pppppppcVar32 != pppppppcVar34);\n        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);\n        pppppppcVar43 = (code *******)0x0;\n        goto LAB_00027804;\n      }\n    }\nLAB_00027610:\n    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);\n    pppppppcVar25 = (code *******)0x100;\n    if (pppppppcVar27 == (code *******)0x0) {\n      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);\n      pppppppcVar38[0xb] = ppppppcVar4;\n      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);\n    }\n    else {\n      pppppppcVar43 = (code *******)0x0;\n    }\n  }\nLAB_00027804:\n  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {\n    return pppppppcVar43;\n  }\n  ppppppcVar4 = pppppppcStack_300[-0x1f77];\n  pcVar46 = FUN_00027cb0;\n  pppppppcVar22 = pppppppcStack_25c;\n  (*(code *)ppppppcVar4)();\n  pppppppcVar2 = pppppppcStack_2f4;\n  pppppppcVar37 = pppppppcStack_300;\n  ppppcStack_33c = *ppppppcVar4[0x5999];\n  pppppppcVar44 = (code *******)*pppppppcVar22;\n  pppppppcVar43 = (code *******)0x0;\n  pppppppcStack_338 = pppppppcVar32;\n  pppppppcStack_334 = pppppppcVar34;\n  pppppppcStack_330 = pppppppcVar27;\n  pppppppcStack_32c = pppppppcVar6;\n  pppppppcStack_328 = pppppppcVar28;\n  pppppppcStack_324 = pppppppcVar42;\n  pppppppcStack_320 = pppppppcVar31;\n  pppppppcStack_31c = pppppppcVar26;\n  pppppppcStack_318 = pppppppcVar38;\n  pcStack_314 = pcVar46;\n  pppppppcStack_308 = pppppppcVar36;\n  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);\n  ppppppcStack_458 = pppppppcVar22[4];\n  if (ppppppcStack_458 != (code ******)0x0) {\n    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if (pppppppcVar29 == pppppppcVar37) {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {\n      ppppppcStack_458 = (code ******)0x0;\n    }\n  }\n  if (pppppppcVar22[6] < pppppppcStack_2f8) {\n    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));\n  }\n  else {\n    pcStack_428 = (code *)0x0;\n  }\n  pppppppcStack_370 = pppppppcVar44;\n  if (pppppppcVar22[2] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[9] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[10] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  if (pppppppcVar44[0xb] == (code ******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar43 = (code *******)pppppppcVar44[0xc];\n  if (pppppppcVar43 == (code *******)0x0) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar26 = pppppppcVar37;\n  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&\n      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))\n     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&\n         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,\n         pppppppcVar37 != (code *******)0x0)))) {\n    pppppppcStack_460 = (code *******)0x1;\n    goto LAB_00028eb4;\n  }\n  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);\n  if (pppppppcVar6 == (code *******)0x0) {\n    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;\n  }\n  else {\n    bVar19 = true;\n  }\n  ppppppcVar41 = pppppppcVar22[5];\n  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);\n  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];\n  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);\n  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {\n    pppppppcVar36 = pppppppcStack_374;\n  }\n  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);\n  pppppppcStack_394 = pppppppcStack_308;\n  pppppppcStack_398 = pppppppcStack_308;\n  bStack_379 = bStack_37c;\n  if (ppppppcVar41 != (code ******)0x0) {\n    bStack_379 = 1;\n  }\n  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);\n  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);\n  pppppppcStack_38c = pppppppcStack_308;\n  pppppppcStack_390 = pppppppcStack_308;\n  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);\n  if (pppppppcVar38 == (code *******)0x0) {\n    pppppppcVar43 = pppppppcVar36;\n  }\n  pppppppcStack_3c4 = pppppppcVar25;\n  ppppppcStack_384 = ppppppcVar41;\n  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);\n  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n  pppppppcStack_380 = pppppppcVar44 + 0x18;\n  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);\n  pppppppcVar36 = (code *******)0x0;\n  pppppppcStack_3a8 = pppppppcVar36;\n  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {\n    pppppppcStack_3a8 = pppppppcStack_308;\n  }\n  pppppppcStack_38c = pppppppcStack_2fc;\n  pppppppcStack_390 = pppppppcStack_2fc;\n  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);\n  ppppppcVar39 = pppppppcVar44[0x13];\n  uVar21 = (int)ppppppcVar39 * 2;\n  pppppppcStack_36c = pppppppcStack_2f0;\n  pppppppcStack_368 = (code *******)0xffffffff;\n  pppppppcStack_3a4 = pppppppcStack_3a8;\n  if ((int)uVar21 < 1) {\nLAB_00029090:\n    iStack_34c = 1;\n    uStack_354 = uVar21;\n    uStack_344 = uVar21;\n    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {\n      pppppppcStack_360 = (code *******)0x0;\nLAB_000290e0:\n      uStack_388 = 6;\n      if (((uint)pppppppcStack_2f0 & 1) != 0) {\n        uStack_388 = 4;\n      }\n      iVar40 = 1;\n      pppppppcVar31 = pppppppcVar29;\n      if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n        iVar40 = -1;\n        pppppppcVar31 = pppppppcVar26;\n      }\n      pppppppcVar28 = pppppppcVar26;\n      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {\n        pppppppcVar28 = pppppppcVar29;\n      }\n      ppppppcVar39 = pppppppcVar44[0x17];\n      uVar21 = 8;\n      if (ppppppcStack_458 != (code ******)0x0) {\n        if (ppppppcVar39 == (code ******)0x1) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {\n          pppppppcVar36 = (code *******)0x4;\n        }\n        pppppppcVar43 = (code *******)0x0;\n        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {\n          pppppppcVar43 = (code *******)0x2;\n        }\n        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |\n                 (uint)pppppppcVar43;\n      }\n      pppppppcStack_3ec = pppppppcVar29;\n      if ((int)pppppppcVar29 < (int)pppppppcVar31) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {\n        pppppppcStack_460 = (code *******)0x1;\n      }\n      else {\n        pppppppcVar36 = (code *******)&pppppppcStack_3ec;\n        if ((int)pppppppcVar26 < (int)pppppppcVar29) {\n          pppppppcVar36 = (code *******)0x0;\n        }\n        pppppcVar5 = ppppppcVar4[0x594e];\n        pppppcVar9 = ppppppcVar4[0x5916];\nLAB_000291e4:\n        pppppppcVar26 = pppppppcStack_308;\n        if (uVar21 - 4 < 5) {\n                    \n                    \n          pppppppcVar26 =\n               (code *******)\n               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();\n          return pppppppcVar26;\n        }\n        while( true ) {\n          pppppppcVar27 = pppppppcStack_3ec;\n          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);\n          pppppppcVar38 = pppppppcStack_2f0;\n          if (pppppppcStack_3a4 <= pppppppcVar42) {\n            pppppppcVar43 = pppppppcStack_3ec;\n            pppppppcStack_460 =\n                 (code *******)\n                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;\n            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);\n          }\n          if ((int)pppppppcVar27 < (int)pppppppcVar26) {\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);\n          }\n          else {\n            uVar10 = 0;\n          }\n          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);\n          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;\n          pppppppcStack_3ec = pppppppcVar27;\n          if ((int)pppppppcVar27 < (int)pppppppcVar31) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n          if ((int)pppppppcVar28 < (int)pppppppcVar27) {\n            pppppppcStack_460 = (code *******)0x1;\n            goto LAB_00028e84;\n          }\n        }\n        while( true ) {\n          pppppppcVar43 = pppppppcStack_3ec;\n          pppppppcVar38 = pppppppcStack_2f0;\n          pppppppcVar42 =\n               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);\n          pppppppcVar27 = pppppppcStack_370;\n          pppppppcVar26 = pppppppcStack_39c;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;\n          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&\n             (*piStack_3bc == -1)) goto LAB_000291bc;\n          iStack_34c = 0;\n          uStack_358 = 0;\n          pppppppcStack_35c = (code *******)0x0;\n          pppppppcStack_448 = pppppppcStack_39c;\n          pppppppcStack_3e8 = (code *******)0x0;\n          pppppppcVar32 = (code *******)pppppppcStack_370[9];\n          pppppppcVar38 = pppppppcStack_36c;\n          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;\n          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n          if ((uVar10 & 1) == 0) {\n            if (uVar10 == 0) break;\n            if ((uVar10 & 6) == 6) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xc];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 2) != 0) {\n              pppppppcVar32 = (code *******)pppppppcVar27[0xb];\n              goto LAB_000283bc;\n            }\n            if ((uVar10 & 4) == 0) break;\n            pppppppcVar38 = (code *******)pppppppcVar32[10];\n            pppppppcVar43 = pppppppcVar27;\n            pppppppcVar32 =\n                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);\n            if (pppppppcVar32 != (code *******)0x0) break;\n            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n            pppppcVar30 = ppppppcVar4[0x5916];\n          }\n          else {\n            pppppppcVar32 = (code *******)pppppppcVar27[10];\nLAB_000283bc:\n            pppppcVar30 = ppppppcVar4[0x5916];\n            if (pppppppcVar32 != (code *******)0x0) break;\n          }\n          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n          pppppppcStack_3ec =\n               (code *******)\n               (*(code *)ppppppcVar4[0x595c])\n                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);\n          if (pppppppcStack_3ec == pppppppcVar28) {\n            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {\n              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);\n            }\n            else {\n              uVar10 = 0;\n            }\n            if (ppppppcVar41 != (code ******)0x0) {\n              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);\n            }\n            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {\n              pppppppcStack_460 = (code *******)0x1;\n              pppppppcVar38 = pppppppcStack_2f0;\n              goto LAB_00028e84;\n            }\n          }\n        }\n        bVar1 = pppppppcVar36 != (code *******)0x0;\n        if ((pppppppcStack_360 == (code *******)0x0) ||\n           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,\n           pppppppcVar27[0x13] == (code ******)0x0)) {\nLAB_000283f0:\n          if ((int)pppppppcVar32[0xd] << 4 < 0) {\n            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||\n               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,\n               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {\n              pppppppcVar27 = pppppppcVar26;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n            }\n            else {\n              pppppppcVar26 = (code *******)0xffffffff;\n              pppppppcVar27 = (code *******)0x0;\n            }\n          }\n          else {\n            pppppppcVar26 = (code *******)0xffffffff;\n            pppppppcVar27 = (code *******)0x0;\n          }\n          pppppcVar30 = ppppppcVar4[0x594e];\n          pppppcVar11 = ppppppcVar4[0x594e];\n          pppppcVar12 = ppppppcVar4[0x594e];\n          pppppppcStack_454 = pppppppcVar36;\n          while( true ) {\n            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);\n            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);\n            pppppppcVar43 = pppppppcStack_39c;\n            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;\n            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&\n               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;\n            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {\n              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {\nLAB_00028534:\n                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);\n                pppppppcStack_3e8 =\n                     (code *******)\n                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);\n                if (pppppppcStack_3e8 == (code *******)0x0) break;\n                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;\n                pppppppcVar38 = (code *******)0x468;\n                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);\n                uVar49 = (*(code *)ppppppcVar4[0x595c])\n                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,\n                                    ppppppcVar4[0x5916] + -0xcf0);\n                pppppppcVar27 = pppppppcVar44;\n              }\n            }\n            pppppppcVar29 = pppppppcStack_370;\n            if ((int)pppppppcVar32[0xd] << 5 < 0) {\n              if (0 < (int)pppppppcVar32[2]) {\n                pppppcVar35 = ppppppcVar4[0x594e];\n                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;\n                iVar17 = 0;\n                do {\n                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];\n                  ppppppcVar18 = *pppppppcVar29;\n                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];\n                  if (((uint)pppppcVar15 & 0x800) != 0) {\n                    if (((uint)pppppcVar15 & 0xffc000) != 0) {\n                      pppppppcVar43 = pppppppcStack_39c;\n                      uVar16 = (*(code *)pppppcVar13)\n                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);\n                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;\n                      if ((uVar10 & 4) == 0) {\n                        uVar23 = uVar16 & 1;\n                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;\n                      }\n                      else {\n                        uVar23 = uVar10 & 8;\n                        if ((uVar16 & 1) == 0) goto LAB_00028744;\njoined_r0x000285e0:\n                        if (uVar23 != 0) goto LAB_00028744;\n                      }\n                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||\n                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;\n                    }\n                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;\n                    pppppppcVar43 = pppppppcVar37;\n                    iVar14 = (*(code *)(pppppcVar12 + -0x218))\n                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)\n                    ;\n                    if (iVar14 != 0) {\n                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);\n                      if (iVar14 <= iStack_34c) {\n                        iVar14 = iStack_34c;\n                      }\n                      pppppppcVar43 = pppppppcVar33;\n                      iStack_34c = iVar14;\n                      pppppppcStack_3e4 =\n                           (code *******)\n                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);\n                      pppppppcVar3 = pppppppcStack_3e4;\n                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                      pppppppcVar38 =\n                           (code *******)\n                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);\n                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                      ppppppcVar18 = *pppppppcVar37;\n                      if (ppppppcVar18 == (code ******)0x0) {\n                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;\n                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];\n                        ppppppcStack_3d8 = pppppppcVar38[2];\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                      }\n                      else {\n                        pppppppcVar43 = (code *******)ppppppcVar18[10];\n                        pppppppcStack_3e4 =\n                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);\n                        pppppppcVar3 = pppppppcStack_3e4;\n                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;\n                        uVar48 = (*(code *)pppppcVar13)\n                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),\n                                            pppppppcStack_36c);\n                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;\n                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;\n                        pppppppcVar43 = pppppppcVar29;\n                        ppppppcVar18 = (code ******)\n                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,\n                                                    uVar48);\n                        *pppppppcVar37 = ppppppcVar18;\n                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);\n                      }\n                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&\n                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))\n                      goto LAB_000294e4;\n                    }\n                  }\nLAB_00028744:\n                  iVar17 = iVar17 + 1;\n                } while (iVar17 < (int)pppppppcVar32[2]);\n              }\n              pppppppcStack_3e8 = (code *******)0x0;\n            }\n            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);\n            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n            do {\n              if (pppppppcVar32[0xb] != (code ******)0x0) {\n                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];\nLAB_00028a40:\n                pppppppcVar29 = pppppppcVar38;\n                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;\n                goto LAB_00028a6c;\n              }\n              ppppppcVar18 = pppppppcVar32[0xc];\n              if (ppppppcVar18 != (code ******)0x0) {\n                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);\n                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);\n                if ((uVar16 & 1) == 0) {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];\n                }\n                else {\n                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];\n                }\n                goto LAB_00028a40;\n              }\n              pppppppcVar43 = pppppppcVar32;\n              pppppppcVar38 = pppppppcStack_36c;\n              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);\n            } while (iVar17 != 0);\n            pppppppcStack_3e8 = (code *******)0xc;\n            pppppppcVar3 = pppppppcStack_3e8;\nLAB_000294e4:\n            pppppppcStack_3e8 = pppppppcVar3;\n            if (pppppppcStack_360 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              break;\n            }\n            pppppppcVar38 = (code *******)0x0;\nLAB_00028a4c:\n            pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n            pppppppcVar29 = (code *******)FUN_00024f5c(&pppppppcStack_3e8,pppppppcVar43);\nLAB_00028a6c:\n            if (pppppppcVar29 == (code *******)0x0) {\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;\n              if ((pppppppcStack_360 == (code *******)0x0) ||\n                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;\n              pppppcVar35 = ppppppcVar4[0x594e];\n              do {\n                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;\n                pppppppcVar29 = pppppppcStack_39c;\n                do {\n                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                  pppppppcVar43 = pppppppcStack_35c;\n                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;\n                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);\n                  pppppppcVar37 = pppppppcVar37 + 1;\n                } while (*pppppppcVar37 == (code ******)0x0);\n                pppppppcVar38 = (code *******)0x0;\n                pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n                pppppppcVar29 =\n                     (code *******)\n                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);\n                if (pppppppcStack_3e8 != (code *******)0x0) {\n                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;\n                  break;\n                }\n                pppppppcVar43 = pppppppcStack_35c;\n              } while (pppppppcVar29 == (code *******)0x0);\n            }\n            pppppppcVar37 = pppppppcStack_448;\n            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {\n              bVar1 = false;\n              pppppppcVar37 = pppppppcStack_448;\n            }\n            pppppppcStack_448 = pppppppcVar37;\n            pppppppcVar32 = pppppppcVar29;\n            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&\n               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||\n                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,\n                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {\n              pppppppcVar27 = pppppppcStack_39c;\n              if (!bVar19) goto LAB_0002945c;\n              pppppppcVar27 = (code *******)0x1;\n              pppppppcStack_454 = (code *******)0x0;\n              pppppppcVar26 = pppppppcStack_39c;\n            }\n          }\nLAB_00029448:\n          pppppppcVar27 = pppppppcVar26;\n          if (pppppppcStack_454 != (code *******)0x0) {\n            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);\n          }\n        }\n        else {\n          pppppppcVar34 = pppppppcVar32 + 1;\n          pppppppcVar38 = (code *******)0x0;\n          pppppppcVar43 = pppppppcVar34;\n          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);\n          pppppppcVar27 = pppppppcStack_3e8;\n          if (pppppppcStack_3e8 == (code *******)0x0) {\n            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {\n              pppppppcVar43 = pppppppcVar34;\n              bVar1 = false;\n            }\n            else {\n              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);\n              pppppppcVar43 = pppppppcVar34;\n              pppppppcVar27 = pppppppcStack_3e8;\n              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;\n              bVar1 = false;\n            }\n            goto LAB_000283f0;\n          }\n        }\nLAB_0002945c:\n        if (pppppppcVar27 == (code *******)0xffffffff) {\nLAB_000291a4:\n          FUN_0001e14c(&pppppppcStack_3c4);\nLAB_000291bc:\n          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);\n          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;\n          pppppppcStack_460 = (code *******)0x1;\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {\n          pppppppcStack_460 = (code *******)0xc;\n          goto LAB_00028e84;\n        }\n        pppppppcStack_368 = pppppppcVar27;\n        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {\n          if (pppppppcVar6 < (code *******)0x2) {\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          else {\n            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n            pppppppcVar38 = pppppppcVar27;\n            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          }\n          if (pppppppcVar6 < (code *******)0x2) {\nLAB_0002930c:\n            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;\n          }\n          else {\n            cVar20 = *(code *)(pppppppcVar44 + 0x16);\nLAB_000292c0:\n            if (-1 < (char)cVar20) goto LAB_0002930c;\n          }\n          ppppppcVar18 = ppppppcStack_364;\n          pppppppcVar26 = pppppppcStack_370;\n          if (pppppppcVar27 < (code *******)0x3fffffff) {\n            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;\n            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n            if (pppppppcVar32 == (code *******)0x0) {\nLAB_0002923c:\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              pppppppcStack_460 = (code *******)0xc;\n            }\n            else {\n              pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n              if (pppppppcVar26[0x13] == (code ******)0x0) {\n                pppppppcStack_3dc = (code *******)0x0;\n                ppppppcStack_3d8 = ppppppcVar18;\n                uStack_3d0 = 0;\n                uStack_3cc = 0;\n                uStack_3c8 = 0;\n                pppppppcStack_3e0 = pppppppcVar32;\n                pppppppcStack_3d4 = pppppppcVar27;\n                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);\n                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                if (pppppppcStack_460 == (code *******)0x0) {\n                  if (*pppppppcVar32 == (code ******)0x0) {\n                    pppppppcVar34 = (code *******)0x0;\nLAB_00029210:\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    goto LAB_000291a4;\n                  }\nLAB_00028bc8:\n                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n                  pppppppcStack_368 = pppppppcVar27;\n                  ppppppcStack_364 = ppppppcVar18;\n                  pppppppcStack_360 = pppppppcVar32;\n                  goto LAB_00028be8;\n                }\nLAB_0002916c:\n                pppppppcVar34 = (code *******)0x0;\n              }\n              else {\n                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);\n                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;\n                pppppcVar30 = ppppppcVar4[0x594e];\n                pppppcVar11 = ppppppcVar4[0x594e];\n                while( true ) {\n                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);\n                  pppppppcVar38 = pppppppcVar29;\n                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);\n                  uStack_3d0 = 0;\n                  uStack_3cc = 0;\n                  uStack_3c8 = 0;\n                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;\n                  pppppppcStack_3e0 = pppppppcVar32;\n                  pppppppcStack_3dc = pppppppcVar34;\n                  ppppppcStack_3d8 = ppppppcVar18;\n                  pppppppcStack_3d4 = pppppppcVar27;\n                  pppppppcStack_460 =\n                       (code *******)\n                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);\n                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);\n                  if (pppppppcStack_460 != (code *******)0x0) break;\n                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))\n                  {\n                    pppppppcVar43 = pppppppcVar32;\n                    pppppppcVar38 = pppppppcVar34;\n                    pppppppcStack_460 =\n                         (code *******)\n                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,\n                                      (code *)((int)pppppppcVar27 + 1));\n                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;\n                    goto LAB_00028bc8;\n                  }\n                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));\n                  do {\n                    while( true ) {\n                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);\n                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;\n                      pppppppcVar43 = *(code ********)(pcVar46 + -4);\n                      if (pppppppcVar43 != (code *******)0x0) break;\n                      pcVar46 = pcVar46 + -4;\n                    }\n                    pcVar46 = pcVar46 + -4;\n                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);\n                  ppppppcVar18 = (code ******)\n                                 (*(code *)(pppppcVar11 + -0x108d))\n                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);\n                }\n              }\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);\n              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);\n              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;\n            }\n          }\n          else {\n            pppppppcStack_460 = (code *******)0xc;\n          }\n          goto LAB_00028e84;\n        }\n        if (pppppppcVar44[0x13] != (code ******)0x0) {\n          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];\n          pppppppcVar38 = pppppppcVar27;\n          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);\n          goto LAB_0002930c;\n        }\nLAB_000292a8:\n        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {\n          cVar20 = *(code *)(pppppppcVar44 + 0x16);\n          goto LAB_000292c0;\n        }\nLAB_00028be8:\n        pppppppcStack_460 = pppppppcVar42;\n        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;\n        if (pppppppcVar6 < (code *******)0x2) {\n          *pppppppcVar2 = (code ******)0x0;\n          pppppppcVar2[1] = (code ******)pppppppcStack_368;\n          goto LAB_00028c4c;\n        }\n        pppppppcVar26 = pppppppcVar2 + 2;\n        do {\n          pppppppcVar26[1] = (code ******)0xffffffff;\n          *pppppppcVar26 = (code ******)0xffffffff;\n          pppppppcVar26 = pppppppcVar26 + 2;\n        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n        *pppppppcVar2 = (code ******)0x0;\n        pppppppcVar2[1] = (code ******)pppppppcStack_368;\n        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {\nLAB_00028c4c:\n          pppppppcVar26 = pppppppcVar2;\n          do {\n            pppppppcVar43 = (code *******)*pppppppcVar26;\n            if (pppppppcVar43 != (code *******)0xffffffff) {\n              if (cStack_378 != '\0') {\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcVar43 != pppppppcStack_3a8) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);\n                }\n                *pppppppcVar26 = (code ******)pppppppcVar36;\n                pppppppcVar36 = pppppppcStack_3a4;\n                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {\n                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);\n                }\n                pppppppcVar26[1] = (code ******)pppppppcVar36;\n              }\n              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);\n              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);\n              pppppppcVar26[1] = (code ******)pppppppcVar43;\n            }\n            pppppppcVar26 = pppppppcVar26 + 2;\n          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);\n          if (0 < (int)pcStack_428) {\n            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;\n            do {\n              *pppppppcVar26 = (code ******)0xffffffff;\n              pppppppcVar26[1] = (code ******)0xffffffff;\n              pppppppcVar26 = pppppppcVar26 + 2;\n            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);\n          }\n          pppppppcVar38 = pppppppcStack_3ec;\n          pppppppcStack_460 = pppppppcVar42;\n          if (pppppppcVar44[0x21] != (code ******)0x0) {\n            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);\n            pppppppcVar6 = (code *******)0x0;\n            pppppppcVar26 = pppppppcVar2;\n            while( true ) {\n              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);\n              if (pppppppcVar38 == pppppppcVar6) break;\n              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {\n                pppppppcVar26[2] =\n                     pppppppcVar2\n                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1\n                           ) * 2];\n                pppppppcVar26[3] =\n                     pppppppcVar2\n                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +\n                      1];\n              }\n              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);\n              pppppppcVar26 = pppppppcVar26 + 2;\n            }\n          }\n          goto LAB_00028e84;\n        }\n        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {\n          bVar19 = 0 < (int)pppppppcVar44[0x13];\n        }\n        else {\n          bVar19 = false;\n        }\n        pppppppcVar43 = (code *******)&pppppppcStack_3c4;\n        pppppppcVar38 = pppppppcVar6;\n        pppppppcStack_460 =\n             (code *******)\n             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);\n        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;\n      }\n    }\n    else if (uStack_3a0 < 0x3fffffff) {\n      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);\n      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;\n      pppppppcStack_460 = (code *******)0xc;\n    }\n    else {\n      pppppppcStack_460 = (code *******)0xc;\n    }\n  }\n  else {\n    if (uVar21 < 0xccccccd) {\n      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);\n      iStack_350 = iVar40;\n      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);\n      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;\n    }\n    pppppppcStack_460 = (code *******)0xc;\n  }\nLAB_00028e84:\n  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);\n  pppppppcVar22 = pppppppcVar38;\n  if (pppppppcVar44[0x13] != (code ******)0x0) {\n    FUN_0001e14c(&pppppppcStack_3c4);\n    (*(code *)ppppppcVar4[0x599c])(iStack_340);\n    (*(code *)ppppppcVar4[0x599c])(iStack_350);\n    pppppppcVar22 = pppppppcVar38;\n  }\n  FUN_0001dc20(&pppppppcStack_3c4);\nLAB_00028eb4:\n  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {\n    return pppppppcStack_460;\n  }\n  pppppcVar5 = ppppppcVar4[0x5991];\n  ppppcVar24 = ppppcStack_33c;\n  (*(code *)pppppcVar5)();\n  *(byte *)(pppppppcVar22 + 7) =\n       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |\n       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;\n  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);\n  if (iVar40 == 0) {\n    pppppppcVar26 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar26 =\n         (code *******)\n         (*(code *)pppppcVar5[0x537d])\n                   (0,(code *)((int)pppppcVar5[0x5301] +\n                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);\n  }\n  return pppppppcVar26;\ncode_r0x000291d8:\n  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;\n  goto LAB_000291e4;\nLAB_00028e48:\n  pppppppcStack_460 = (code *******)0x1;\n  goto LAB_00028e84;\nLAB_00028fb4:\n  pppppppcStack_460 = (code *******)0xc;\n  goto LAB_00028e84;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "code *******pppppppcVar2;" (type_identifier "code") (pointer_declarator "*******pppppppcVar2" (* "*") (pointer_declarator "******pppppppcVar2" (* "*") (pointer_declarator "*****pppppppcVar2" (* "*") (pointer_declarator "****pppppppcVar2" (* "*") (pointer_declarator "***pppppppcVar2" (* "*") (pointer_declarator "**pppppppcVar2" (* "*") (pointer_declarator "*pppppppcVar2" (* "*") (identifier "pppppppcVar2")))))))) (; ";")) (declaration "code *******pppppppcVar3;" (type_identifier "code") (pointer_declarator "*******pppppppcVar3" (* "*") (pointer_declarator "******pppppppcVar3" (* "*") (pointer_declarator "*****pppppppcVar3" (* "*") (pointer_declarator "****pppppppcVar3" (* "*") (pointer_declarator "***pppppppcVar3" (* "*") (pointer_declarator "**pppppppcVar3" (* "*") (pointer_declarator "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")))))))) (; ";")) (declaration "code ******ppppppcVar4;" (type_identifier "code") (pointer_declarator "******ppppppcVar4" (* "*") (pointer_declarator "*****ppppppcVar4" (* "*") (pointer_declarator "****ppppppcVar4" (* "*") (pointer_declarator "***ppppppcVar4" (* "*") (pointer_declarator "**ppppppcVar4" (* "*") (pointer_declarator "*ppppppcVar4" (* "*") (identifier "ppppppcVar4"))))))) (; ";")) (declaration "code *****pppppcVar5;" (type_identifier "code") (pointer_declarator "*****pppppcVar5" (* "*") (pointer_declarator "****pppppcVar5" (* "*") (pointer_declarator "***pppppcVar5" (* "*") (pointer_declarator "**pppppcVar5" (* "*") (pointer_declarator "*pppppcVar5" (* "*") (identifier "pppppcVar5")))))) (; ";")) (declaration "code *******pppppppcVar6;" (type_identifier "code") (pointer_declarator "*******pppppppcVar6" (* "*") (pointer_declarator "******pppppppcVar6" (* "*") (pointer_declarator "*****pppppppcVar6" (* "*") (pointer_declarator "****pppppppcVar6" (* "*") (pointer_declarator "***pppppppcVar6" (* "*") (pointer_declarator "**pppppppcVar6" (* "*") (pointer_declarator "*pppppppcVar6" (* "*") (identifier "pppppppcVar6")))))))) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "code *****pppppcVar9;" (type_identifier "code") (pointer_declarator "*****pppppcVar9" (* "*") (pointer_declarator "****pppppcVar9" (* "*") (pointer_declarator "***pppppcVar9" (* "*") (pointer_declarator "**pppppcVar9" (* "*") (pointer_declarator "*pppppcVar9" (* "*") (identifier "pppppcVar9")))))) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "code *****pppppcVar11;" (type_identifier "code") (pointer_declarator "*****pppppcVar11" (* "*") (pointer_declarator "****pppppcVar11" (* "*") (pointer_declarator "***pppppcVar11" (* "*") (pointer_declarator "**pppppcVar11" (* "*") (pointer_declarator "*pppppcVar11" (* "*") (identifier "pppppcVar11")))))) (; ";")) (declaration "code *****pppppcVar12;" (type_identifier "code") (pointer_declarator "*****pppppcVar12" (* "*") (pointer_declarator "****pppppcVar12" (* "*") (pointer_declarator "***pppppcVar12" (* "*") (pointer_declarator "**pppppcVar12" (* "*") (pointer_declarator "*pppppcVar12" (* "*") (identifier "pppppcVar12")))))) (; ";")) (declaration "code *****pppppcVar13;" (type_identifier "code") (pointer_declarator "*****pppppcVar13" (* "*") (pointer_declarator "****pppppcVar13" (* "*") (pointer_declarator "***pppppcVar13" (* "*") (pointer_declarator "**pppppcVar13" (* "*") (pointer_declarator "*pppppcVar13" (* "*") (identifier "pppppcVar13")))))) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "code *****pppppcVar15;" (type_identifier "code") (pointer_declarator "*****pppppcVar15" (* "*") (pointer_declarator "****pppppcVar15" (* "*") (pointer_declarator "***pppppcVar15" (* "*") (pointer_declarator "**pppppcVar15" (* "*") (pointer_declarator "*pppppcVar15" (* "*") (identifier "pppppcVar15")))))) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "code ******ppppppcVar18;" (type_identifier "code") (pointer_declarator "******ppppppcVar18" (* "*") (pointer_declarator "*****ppppppcVar18" (* "*") (pointer_declarator "****ppppppcVar18" (* "*") (pointer_declarator "***ppppppcVar18" (* "*") (pointer_declarator "**ppppppcVar18" (* "*") (pointer_declarator "*ppppppcVar18" (* "*") (identifier "ppppppcVar18"))))))) (; ";")) (declaration "bool bVar19;" (primitive_type "bool") (identifier "bVar19") (; ";")) (declaration "code cVar20;" (type_identifier "code") (identifier "cVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "code *******pppppppcVar22;" (type_identifier "code") (pointer_declarator "*******pppppppcVar22" (* "*") (pointer_declarator "******pppppppcVar22" (* "*") (pointer_declarator "*****pppppppcVar22" (* "*") (pointer_declarator "****pppppppcVar22" (* "*") (pointer_declarator "***pppppppcVar22" (* "*") (pointer_declarator "**pppppppcVar22" (* "*") (pointer_declarator "*pppppppcVar22" (* "*") (identifier "pppppppcVar22")))))))) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "code ****ppppcVar24;" (type_identifier "code") (pointer_declarator "****ppppcVar24" (* "*") (pointer_declarator "***ppppcVar24" (* "*") (pointer_declarator "**ppppcVar24" (* "*") (pointer_declarator "*ppppcVar24" (* "*") (identifier "ppppcVar24"))))) (; ";")) (declaration "code *******pppppppcVar25;" (type_identifier "code") (pointer_declarator "*******pppppppcVar25" (* "*") (pointer_declarator "******pppppppcVar25" (* "*") (pointer_declarator "*****pppppppcVar25" (* "*") (pointer_declarator "****pppppppcVar25" (* "*") (pointer_declarator "***pppppppcVar25" (* "*") (pointer_declarator "**pppppppcVar25" (* "*") (pointer_declarator "*pppppppcVar25" (* "*") (identifier "pppppppcVar25")))))))) (; ";")) (declaration "code *******pppppppcVar26;" (type_identifier "code") (pointer_declarator "*******pppppppcVar26" (* "*") (pointer_declarator "******pppppppcVar26" (* "*") (pointer_declarator "*****pppppppcVar26" (* "*") (pointer_declarator "****pppppppcVar26" (* "*") (pointer_declarator "***pppppppcVar26" (* "*") (pointer_declarator "**pppppppcVar26" (* "*") (pointer_declarator "*pppppppcVar26" (* "*") (identifier "pppppppcVar26")))))))) (; ";")) (declaration "code *******pppppppcVar27;" (type_identifier "code") (pointer_declarator "*******pppppppcVar27" (* "*") (pointer_declarator "******pppppppcVar27" (* "*") (pointer_declarator "*****pppppppcVar27" (* "*") (pointer_declarator "****pppppppcVar27" (* "*") (pointer_declarator "***pppppppcVar27" (* "*") (pointer_declarator "**pppppppcVar27" (* "*") (pointer_declarator "*pppppppcVar27" (* "*") (identifier "pppppppcVar27")))))))) (; ";")) (declaration "code *******pppppppcVar28;" (type_identifier "code") (pointer_declarator "*******pppppppcVar28" (* "*") (pointer_declarator "******pppppppcVar28" (* "*") (pointer_declarator "*****pppppppcVar28" (* "*") (pointer_declarator "****pppppppcVar28" (* "*") (pointer_declarator "***pppppppcVar28" (* "*") (pointer_declarator "**pppppppcVar28" (* "*") (pointer_declarator "*pppppppcVar28" (* "*") (identifier "pppppppcVar28")))))))) (; ";")) (declaration "code *******pppppppcVar29;" (type_identifier "code") (pointer_declarator "*******pppppppcVar29" (* "*") (pointer_declarator "******pppppppcVar29" (* "*") (pointer_declarator "*****pppppppcVar29" (* "*") (pointer_declarator "****pppppppcVar29" (* "*") (pointer_declarator "***pppppppcVar29" (* "*") (pointer_declarator "**pppppppcVar29" (* "*") (pointer_declarator "*pppppppcVar29" (* "*") (identifier "pppppppcVar29")))))))) (; ";")) (declaration "code *****pppppcVar30;" (type_identifier "code") (pointer_declarator "*****pppppcVar30" (* "*") (pointer_declarator "****pppppcVar30" (* "*") (pointer_declarator "***pppppcVar30" (* "*") (pointer_declarator "**pppppcVar30" (* "*") (pointer_declarator "*pppppcVar30" (* "*") (identifier "pppppcVar30")))))) (; ";")) (declaration "code *******pppppppcVar3
[cell cut: 3,257,073 characters, first 262,144 kept]
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))))))))))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))))))))) (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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))) (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (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: (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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_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: (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)) value: (parenthesized_expression (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))))))) alternative: (else_clause (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_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)) value: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) (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: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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))) (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal))))) right: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))))) 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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (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: (identifier))) (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: (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: (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)))))) (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: (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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (pointer_expression argument: (identifier))))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_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))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (pointer_expression argument: (identifier)))) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (pointer_expression argument: (identifier))))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (pointer_expression argument: (identifier))))))) right: (number_literal)) (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))))) (labeled_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 (identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))))) 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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (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)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (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 (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (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)) (identifier)))) (expression_statement (assignment_expression left: (identifier) 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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (labeled_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 (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (break_statement)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))) right: (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement body: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement body: (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: (identifier))) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))))) arguments: (argument_list))))) (return_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 (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))))))) alternative: (else_clause (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_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: (char_literal (escape_sequence)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))) right: (pointer_expression argument: (identifier)))))) consequence: (goto_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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))))))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))))) 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier)))) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (break_statement)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) 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: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (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: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (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: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (unary_expression argument: (parenthesized_expression (identifier))) right: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (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: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (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)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (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: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (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: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) 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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal)))))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))))) arguments: (argument_list))))) (return_statement (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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 (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (break_statement))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (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: (identifier))))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (identifier) (number_literal) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))) right: (number_literal)))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (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: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (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: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (parenthesized_expression (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)))))) arguments: (argument_list (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (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)))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (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)))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_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)) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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 (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (identifier) (identifier)))))) condition: (parenthesized_expression (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier)))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (pointer_expression argument: (identifier))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (false)))))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (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: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_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: (subscript_expression argument: (identifier) index: (number_literal)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (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))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier))))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)) right: (identifier))))) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (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: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))))) (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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) right: (number_literal)))) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) right: (number_literal))) right: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (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: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))))))) alternative: (else_clause (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))))) alternative: (else_clause (compound_statement (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (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: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (number_literal) (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: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (number_literal))))))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (goto_statement label: (statement_identifier)))))

/* WARNING: Type propagation algorithm not settling */

code ******* MASKED(int *param_1,code *******param_2,code *******param_3,code *******param_4)

{
  bool bVar1;
  code *******pppppppcVar2;
  code *******pppppppcVar3;
  code ******ppppppcVar4;
  code *****pppppcVar5;
  code *******pppppppcVar6;
  byte *pbVar7;
  int *piVar8;
  code *****pppppcVar9;
  uint uVar10;
  code *****pppppcVar11;
  code *****pppppcVar12;
  code *****pppppcVar13;
  int iVar14;
  code *****pppppcVar15;
  uint uVar16;
  int iVar17;
  code ******ppppppcVar18;
  bool bVar19;
  code cVar20;
  uint uVar21;
  code *******pppppppcVar22;
  uint uVar23;
  code ****ppppcVar24;
  code *******pppppppcVar25;
  code *******pppppppcVar26;
  code *******pppppppcVar27;
  code *******pppppppcVar28;
  code *******pppppppcVar29;
  code *****pppppcVar30;
  code *******pppppppcVar31;
  code *******pppppppcVar32;
  code *******pppppppcVar33;
  code *******pppppppcVar34;
  code *****pppppcVar35;
  code *******pppppppcVar36;
  code *******pppppppcVar37;
  code *******pppppppcVar38;
  code ******ppppppcVar39;
  code *******unaff_s4;
  int iVar40;
  code ******ppppppcVar41;
  code *******pppppppcVar42;
  code ******unaff_s6;
  code *******pppppppcVar43;
  code *******pppppppcVar44;
  undefined *puVar45;
  code *pcVar46;
  code *******unaff_s8;
  code *pcVar47;
  undefined4 uVar48;
  undefined8 uVar49;
  code *******pppppppcStack_460;
  code ******ppppppcStack_458;
  code *******pppppppcStack_454;
  code *******pppppppcStack_448;
  code *pcStack_428;
  code *******pppppppcStack_3ec;
  code *******pppppppcStack_3e8;
  code *******pppppppcStack_3e4;
  code *******pppppppcStack_3e0;
  code *******pppppppcStack_3dc;
  code ******ppppppcStack_3d8;
  code *******pppppppcStack_3d4;
  undefined4 uStack_3d0;
  undefined4 uStack_3cc;
  undefined4 uStack_3c8;
  code *******pppppppcStack_3c4;
  code *******pppppppcStack_3c0;
  int *piStack_3bc;
  int iStack_3b8;
  int iStack_3ac;
  code *******pppppppcStack_3a8;
  code *******pppppppcStack_3a4;
  uint uStack_3a0;
  code *******pppppppcStack_39c;
  code *******pppppppcStack_398;
  code *******pppppppcStack_394;
  code *******pppppppcStack_390;
  code *******pppppppcStack_38c;
  undefined4 uStack_388;
  code ******ppppppcStack_384;
  code *******pppppppcStack_380;
  byte bStack_37c;
  byte bStack_37b;
  byte bStack_37a;
  byte bStack_379;
  char cStack_378;
  byte bStack_377;
  byte bStack_376;
  code *******pppppppcStack_374;
  code *******pppppppcStack_370;
  code *******pppppppcStack_36c;
  code *******pppppppcStack_368;
  code ******ppppppcStack_364;
  code *******pppppppcStack_360;
  code *******pppppppcStack_35c;
  undefined4 uStack_358;
  uint uStack_354;
  int iStack_350;
  int iStack_34c;
  uint uStack_344;
  int iStack_340;
  code ****ppppcStack_33c;
  code *******pppppppcStack_338;
  code *******pppppppcStack_334;
  code *******pppppppcStack_330;
  code *******pppppppcStack_32c;
  code *******pppppppcStack_328;
  code *******pppppppcStack_324;
  code *******pppppppcStack_320;
  code *******pppppppcStack_31c;
  code *******pppppppcStack_318;
  code *pcStack_314;
  code *******pppppppcStack_308;
  code *******pppppppcStack_300;
  code *******pppppppcStack_2fc;
  code *******pppppppcStack_2f8;
  code *******pppppppcStack_2f4;
  code *******pppppppcStack_2f0;
  code *******pppppppcStack_2ec;
  code ******ppppppcStack_2e8;
  code *******pppppppcStack_2e4;
  code *******pppppppcStack_2e0;
  code ******ppppppcStack_2dc;
  code ******ppppppcStack_2d8;
  int iStack_2d4;
  code *******pppppppcStack_2cc;
  code ******ppppppcStack_2c8;
  undefined4 uStack_2c4;
  undefined4 uStack_2c0;
  code ******appppppcStack_2bc [12];
  code ******ppppppcStack_28c;
  code ******ppppppcStack_288;
  code ******ppppppcStack_284;
  code ******ppppppcStack_280;
  code ******appppppcStack_27c [4];
  code ******ppppppcStack_26c;
  code ******ppppppcStack_268;
  code ******ppppppcStack_264;
  code ******ppppppcStack_260;
  code *******pppppppcStack_25c;
  code *******pppppppcStack_258;
  code *******pppppppcStack_254;
  code *******pppppppcStack_250;
  code *******pppppppcStack_24c;
  code *******pppppppcStack_248;
  code *******pppppppcStack_244;
  code *******pppppppcStack_240;
  code *******pppppppcStack_23c;
  code *******pppppppcStack_238;
  undefined4 uStack_234;
  undefined4 uStack_220;
  code *******pppppppcStack_21c;
  code *pcStack_218;
  code *******pppppppcStack_210;
  code *pcStack_20c;
  code *******pppppppcStack_204;
  code *******pppppppcStack_200;
  code ******ppppppcStack_1fc;
  int iStack_1f8;
  int *piStack_1f4;
  code *******pppppppcStack_1f0;
  code *******apppppppcStack_1ec [6];
  int iStack_1d4;
  int iStack_1d0;
  int iStack_1cc;
  code *******pppppppcStack_1c4;
  code *******pppppppcStack_1c0;
  code *******pppppppcStack_1bc;
  code *******pppppppcStack_1b8;
  code *******pppppppcStack_1b0;
  undefined1 uStack_1a8;
  byte bStack_1a7;
  byte bStack_1a6;
  char cStack_1a5;
  code ******ppppppcStack_1a0;
  code *******pppppppcStack_19c;
  code *******pppppppcStack_198;
  code *******pppppppcStack_194;
  code *******pppppppcStack_190;
  code *******pppppppcStack_18c;
  code *******pppppppcStack_188;
  code *******pppppppcStack_184;
  code *******pppppppcStack_180;
  code ******ppppppcStack_17c;
  code *******pppppppcStack_178;
  code *pcStack_174;
  code *******pppppppcStack_160;
  code *******pppppppcStack_15c;
  code *pcStack_158;
  code *******pppppppcStack_150;
  int iStack_14c;
  code ******ppppppcStack_148;
  undefined4 uStack_144;
  undefined4 uStack_140;
  code *******pppppppcStack_13c;
  code *pcStack_138;
  code ******ppppppcStack_134;
  code *pcStack_130;
  code *pcStack_12c;
  code ******ppppppcStack_128;
  undefined4 uStack_124;
  undefined4 uStack_120;
  code *******pppppppcStack_11c;
  code *******pppppppcStack_118;
  code *******pppppppcStack_114;
  code *******pppppppcStack_110;
  code *******pppppppcStack_10c;
  code *******pppppppcStack_108;
  code *******pppppppcStack_104;
  code *******pppppppcStack_100;
  code ******ppppppcStack_fc;
  code *******pppppppcStack_f8;
  code *pcStack_f4;
  code *******pppppppcStack_e0;
  code *pcStack_dc;
  undefined *puStack_d8;
  code *******pppppppcStack_cc;
  code *******pppppppcStack_c8;
  code *******pppppppcStack_c4;
  code *pcStack_c0;
  code ******ppppppcStack_bc;
  code *pcStack_b8;
  code *******pppppppcStack_b4;
  code *******pppppppcStack_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  code *pcStack_a4;
  code *******pppppppcStack_a0;
  int iStack_9c;
  code *******pppppppcStack_94;
  code *******pppppppcStack_90;
  code *******pppppppcStack_8c;
  code *******pppppppcStack_88;
  code *******pppppppcStack_84;
  code ******ppppppcStack_80;
  code ******ppppppcStack_7c;
  code ******ppppppcStack_78;
  code *******pppppppcStack_74;
  code *******pppppppcStack_70;
  code *******pppppppcStack_6c;
  code *******pppppppcStack_68;
  code *******pppppppcStack_64;
  code *******pppppppcStack_60;
  int *piStack_5c;
  code ******ppppppcStack_58;
  code ******local_30;
  code ******local_2c;
  code ******local_28;
  code *******local_24;
  
  local_24 = *(code ********)PTR___stack_chk_guard_0003e314;
  pppppppcVar36 = (code *******)param_2[10];
  pppppppcVar38 = (code *******)param_2[0x15];
  pppppppcVar26 = param_2;
  pppppppcVar6 = param_3;
  if ((int)param_2[0x1a] < (int)pppppppcVar36) {
    param_2[0x19][(int)pppppppcVar36] = (code *****)param_3;
    param_2[0x1a] = (code ******)pppppppcVar36;
LAB_00024fd0:
    ppppppcVar4 = pppppppcVar38[0x13];
LAB_00024fd4:
    pppppppcVar31 = param_3;
    if ((ppppppcVar4 != (code ******)0x0) &&
       (pppppppcVar38 = pppppppcVar6 + 1, pppppppcVar6 != (code *******)0x0)) {
      pppppppcVar26 = pppppppcVar38;
      pppppppcVar31 = pppppppcVar36;
      iVar40 = FUN_0001a39c(param_2);
      *param_1 = iVar40;
      if (iVar40 == 0) {
        if (((uint)pppppppcVar6[0xd] & 0x2000000) != 0) {
          pppppppcVar26 = pppppppcVar38;
          iVar40 = FUN_00024660(param_2);
          *param_1 = iVar40;
          if (iVar40 == 0) {
            pppppppcVar6 = (code *******)param_2[0x19][(int)pppppppcVar36];
          }
          else {
            pppppppcVar6 = (code *******)0x0;
          }
        }
      }
      else {
        pppppppcVar6 = (code *******)0x0;
      }
    }
  }
  else {
    unaff_s4 = (code *******)(param_2[0x19] + (int)pppppppcVar36);
    if (*unaff_s4 == (code ******)0x0) {
      *unaff_s4 = (code ******)param_3;
      goto LAB_00024fd0;
    }
    pppppppcVar31 = (code *******)(*unaff_s4)[10];
    if (param_3 == (code *******)0x0) {
      local_30 = *pppppppcVar31;
      local_2c = pppppppcVar31[1];
      local_28 = pppppppcVar31[2];
      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)pppppppcVar36 + -1),param_2[0x16]);
      param_3 = &local_30;
      pppppppcVar26 = pppppppcVar38;
      pppppppcVar6 = (code *******)FUN_0001d798(param_1);
      *unaff_s4 = (code ******)pppppppcVar6;
      goto LAB_00024fd0;
    }
    unaff_s4 = (code *******)param_3[10];
    pppppppcVar26 = unaff_s4;
    iVar40 = FUN_0001ae50(&local_30);
    *param_1 = iVar40;
    if (iVar40 == 0) {
      param_4 = (code *******)FUN_0001baa4(param_2,(code *)((int)param_2[10] - 1),param_2[0x16]);
      unaff_s6 = param_2[0x19] + (int)pppppppcVar36;
      param_3 = &local_30;
      pppppppcVar26 = pppppppcVar38;
      pppppppcVar6 = (code *******)FUN_0001d798(param_1);
      *unaff_s6 = (code *****)pppppppcVar6;
      if (unaff_s4 == (code *******)0x0) goto LAB_00024fd0;
      (*(code *)PTR_free_0003e320)(local_28);
      ppppppcVar4 = pppppppcVar38[0x13];
      goto LAB_00024fd4;
    }
    pppppppcVar6 = (code *******)0x0;
  }
  if (local_24 == *(code ********)PTR___stack_chk_guard_0003e314) {
    return pppppppcVar6;
  }
  pppppppcVar42 = local_24;
  puVar45 = PTR___stack_chk_fail_0003e2f4;
  (*(code *)PTR___stack_chk_fail_0003e2f4)();
  puStack_d8 = puVar45 + 0x20ee4;
  pppppppcStack_74 = (code *******)**(undefined4 **)(puVar45 + 0x19128);
  pppppppcVar43 = (code *******)pppppppcVar42[0x15];
  pppppppcStack_94 = (code *******)0x0;
  ppppppcVar4 = (code ******)((int)pppppppcVar31 * 4);
  pppppppcVar25 = pppppppcVar43;
  pppppppcVar27 = param_4;
  pppppppcVar28 = param_4;
  pppppppcStack_70 = param_2;
  pppppppcStack_6c = pppppppcVar6;
  pppppppcStack_68 = pppppppcVar36;
  pppppppcStack_64 = pppppppcVar38;
  pppppppcStack_60 = unaff_s4;
  piStack_5c = param_1;
  ppppppcStack_58 = unaff_s6;
  if (pppppppcVar42[0x19][(int)pppppppcVar31] == (code *****)0x0) {
    pppppppcVar6 = (code *******)0x0;
    if (param_4[1] != (code ******)0x0) {
      ppppppcVar4 = *pppppppcVar26 + (int)pppppppcVar31;
      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);
      *ppppppcVar4 = pppppcVar5;
      pppppppcVar36 = pppppppcStack_94;
      puVar45 = puStack_d8;
      goto LAB_000253f8;
    }
LAB_000253c8:
    (*pppppppcVar26)[(int)pppppppcVar31] = (code *****)0x0;
    pppppppcVar25 = pppppppcVar26;
    if (pppppppcVar6 == (code *******)0x0) {
      pppppppcVar36 = (code *******)0x0;
      puVar45 = puStack_d8;
    }
    else {
LAB_000253d8:
      pppppppcVar36 = (code *******)0x0;
      puVar45 = puStack_d8;
      if (((uint)pppppppcVar42[0x19][(int)pppppppcVar31][0xd] & 0x2000000) != 0) {
        pppppppcVar25 = pppppppcVar31;
        pppppppcStack_a0 = (code *******)FUN_0001941c(pppppppcVar42);
        pppppppcVar36 = (code *******)0x0;
        puVar45 = puStack_d8;
        if (pppppppcStack_a0 != (code *******)0xffffffff) {
          unaff_s8 = (code *******)pppppppcVar42[0x15];
          pppppppcStack_90 = (code *******)0x0;
          if ((int)pppppppcVar6[1] < 1) {
            pppppppcVar36 = (code *******)0x0;
          }
          else {
            iStack_9c = (int)pppppppcStack_a0 * 0x14;
            pppppppcStack_c4 = (code *******)0x0;
            pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);
            pppppppcStack_b4 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x6b14);
            pcStack_a4 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x5af4);
            do {
              pppppppcVar43 = (code *******)pppppppcVar6[2][(int)pppppppcStack_c4];
              if (((pppppppcVar43 != (code *******)pppppppcVar26[2]) ||
                  (pppppppcVar31 != (code *******)pppppppcVar26[3])) &&
                 (*(code *)(*unaff_s8 + (int)pppppppcVar43 * 2 + 1) == (code)0x4)) {
                pcStack_b8 = (code *)((int)pppppppcVar43 * 0xc);
                ppppppcStack_bc = (code ******)((int)pppppppcVar43 << 2);
                pppppppcStack_c8 = pppppppcStack_a0;
                uStack_ac = *(undefined4 *)(puVar45 + -0x7ee8);
                uStack_a8 = *(undefined4 *)(puVar45 + -0x7ee8);
                pppppppcVar36 = (code *******)((int)pppppppcVar42[0x1d] + iStack_9c);
                do {
                  param_4 = pppppppcVar36;
                  if (pppppppcVar43 == (code *******)*param_4) {
                    pcVar46 = (code *)((int)pppppppcVar31 + ((int)param_4[3] - (int)param_4[2]));
                    if ((int)param_4[3] - (int)param_4[2] == 0) {
                      pppppppcStack_cc =
                           (code *******)**(undefined4 **)(pcStack_b8 + (int)(unaff_s8[5] + 2));
                    }
                    else {
                      pppppppcStack_cc = *(code ********)((int)unaff_s8[3] + (int)ppppppcStack_bc);
                    }
                    if ((((int)pcVar46 <= (int)pppppppcVar26[3]) &&
                        (pppppppcVar25 = pppppppcStack_cc,
                        (*pppppppcVar26)[(int)pcVar46] != (code *****)0x0)) &&
                       (iVar40 = (*pcStack_c0)((*pppppppcVar26)[(int)pcVar46] + 1),
                       puVar45 = puStack_d8, iVar40 != 0)) {
                      pppppppcVar25 = pppppppcVar26 + 4;
                      pppppppcStack_e0 = pppppppcStack_cc;
                      pppppppcVar27 = pppppppcVar43;
                      pppppppcVar28 = pppppppcVar31;
                      pcStack_dc = pcVar46;
                      pppppppcStack_b0 = pppppppcVar25;
                      iVar40 = (*(code *)pppppppcStack_b4)(pppppppcVar42);
                      puVar45 = puStack_d8;
                      if (iVar40 == 0) {
                        if (pppppppcStack_90 == (code *******)0x0) {
                          pppppppcStack_90 = (code *******)*pppppppcVar26;
                          pppppppcVar28 = (code *******)pppppppcVar26[1];
                          pppppppcVar27 = (code *******)pppppppcVar26[2];
                          pppppppcStack_84 = (code *******)pppppppcVar26[3];
                          ppppppcStack_80 = pppppppcVar26[4];
                          ppppppcStack_7c = pppppppcVar26[5];
                          ppppppcStack_78 = pppppppcVar26[6];
                          pppppppcVar25 = pppppppcStack_b0;
                          pppppppcStack_8c = pppppppcVar28;
                          pppppppcStack_88 = pppppppcVar27;
                          pppppppcVar36 = (code *******)FUN_0001ad7c(&ppppppcStack_80);
                          puVar45 = puStack_d8;
                          if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;
                        }
                        pppppppcVar25 = pppppppcStack_c8;
                        pppppppcStack_88 = pppppppcVar43;
                        pppppppcStack_84 = pppppppcVar31;
                        iVar40 = FUN_00019e64(&ppppppcStack_80);
                        if (iVar40 == 0) {
                          pppppppcVar36 = (code *******)0xc;
                          puVar45 = puStack_d8;
                          goto LAB_00025aa0;
                        }
                        param_4 = (code *******)pppppppcStack_90[(int)pppppppcVar31];
                        pppppppcVar25 = (code *******)&pppppppcStack_90;
                        pppppppcVar36 = (code *******)(*pcStack_a4)(pppppppcVar42);
                        puVar45 = puStack_d8;
                        if (pppppppcVar36 != (code *******)0x0) goto LAB_00025aa0;
                        pppppppcVar25 = (code *******)pppppppcVar26[1];
                        pppppppcVar28 = (code *******)((int)pppppppcVar31 + 1);
                        if ((pppppppcVar25 != (code *******)0x0) &&
                           (pppppppcVar27 = pppppppcStack_90,
                           pppppppcVar36 = (code *******)FUN_000239ac(unaff_s8),
                           puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))
                        goto LAB_00025aa0;
                        pppppppcVar36 = pppppppcStack_c8;
                        pppppppcStack_90[(int)pppppppcVar31] = (code ******)param_4;
                        iVar40 = (*pcStack_c0)(&ppppppcStack_80,pppppppcStack_c8);
                        pppppppcVar25 = (code *******)(iVar40 + -1);
                        FUN_000188ac(&ppppppcStack_80);
                        param_4 = (code *******)(pppppppcVar42[0x1d] + (int)pppppppcVar36 * 5);
                        puVar45 = puStack_d8;
                      }
                    }
                  }
                  pppppppcStack_c8 = (code *******)((int)pppppppcStack_c8 + 1);
                  pppppppcVar36 = param_4 + 5;
                } while (*(code *)(param_4 + 4) != (code)0x0);
              }
              pppppppcStack_c4 = (code *******)((int)pppppppcStack_c4 + 1);
              pppppppcVar36 = (code *******)0x0;
            } while ((int)pppppppcStack_c4 < (int)pppppppcVar6[1]);
LAB_00025aa0:
            if (pppppppcStack_90 != (code *******)0x0) {
              (**(code **)(puVar45 + -0x7db0))(ppppppcStack_78);
              puVar45 = puStack_d8;
            }
          }
        }
      }
    }
  }
  else {
    pppppppcVar6 = (code *******)(pppppppcVar42[0x19][(int)pppppppcVar31] + 1);
    pppppppcVar27 = pppppppcVar31;
    if (param_4[1] == (code ******)0x0) goto LAB_000253c8;
    pppppppcStack_90 = (code *******)0x0;
    pppppppcVar27 = param_4;
    unaff_s8 = (code *******)FUN_00023348(&pppppppcStack_90);
    pppppppcVar36 = pppppppcStack_90;
    puVar45 = puStack_d8;
    if (pppppppcStack_90 == (code *******)0x0) {
      pppppppcVar27 = unaff_s8 + 7;
      if (unaff_s8[7] == (code ******)0x0) {
        pppppppcStack_cc = unaff_s8 + 7;
        pppppppcVar25 = (code *******)param_4[1];
        pppppppcStack_90 = (code *******)FUN_0001a1a8(pppppppcStack_cc);
        if (pppppppcStack_90 != (code *******)0x0) {
          pppppppcVar36 = (code *******)0xc;
          puVar45 = puStack_d8;
          goto LAB_000253f8;
        }
        if (0 < (int)param_4[1]) {
          pppppppcStack_c8 = (code *******)(*(int *)(puStack_d8 + -0x7ee8) + -0x5750);
          iVar40 = 0;
          do {
            pppppppcStack_90 = (code *******)0x0;
            pppppppcVar25 = (code *******)(pppppppcVar43[7] + (int)param_4[2][iVar40] * 3);
            pppppppcStack_90 = (code *******)(*(code *)pppppppcStack_c8)(pppppppcStack_cc);
            if (pppppppcStack_90 != (code *******)0x0) {
              pppppppcVar36 = (code *******)0xc;
              puVar45 = puStack_d8;
              goto LAB_000253f8;
            }
            iVar40 = iVar40 + 1;
          } while (iVar40 < (int)param_4[1]);
        }
      }
      pppppppcVar27 = unaff_s8 + 7;
      pppppppcVar25 = pppppppcVar6;
      pppppppcVar36 = (code *******)FUN_0001ab08(param_4);
      puVar45 = puStack_d8;
      pppppppcStack_b4 = pppppppcVar36;
      pppppppcStack_94 = pppppppcVar36;
      if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;
      if (pppppppcVar26[5] != (code ******)0x0) {
        ppppppcStack_bc = pppppppcVar42[0x1d];
        if (0 < (int)pppppppcVar26[5]) {
          pcStack_c0 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + -0x7800);
          pcStack_b8 = (code *)(*(int *)(puStack_d8 + -0x7ee8) + 0x504);
          pppppppcStack_cc = (code *******)0x0;
          do {
            ppppppcVar41 = ppppppcStack_bc + (int)pppppppcVar26[6][(int)pppppppcStack_cc] * 5;
            if (((int)ppppppcVar41[2] < (int)pppppppcVar31) &&
               ((int)pppppppcVar31 <= (int)ppppppcVar41[1])) {
              pppppppcVar28 = (code *******)*pppppppcVar43;
              pppppppcStack_c8 = (code *******)pppppppcVar28[(int)*ppppppcVar41 * 2];
              if (pppppppcVar31 == (code *******)ppppppcVar41[3]) {
                if (0 < (int)param_4[1]) {
                  ppppppcVar41 = param_4[2];
                  ppppppcVar39 = ppppppcVar41 + (int)param_4[1];
                  pppppppcStack_c4 = (code *******)0xffffffff;
                  pppppppcVar25 = (code *******)0xffffffff;
                  do {
                    pppppppcVar38 = (code *******)*ppppppcVar41;
                    pppppppcVar36 = pppppppcVar28 + (int)pppppppcVar38 * 2;
                    if (*(code *)(pppppppcVar36 + 1) == (code)0x8) {
                      if (pppppppcStack_c8 == (code *******)*pppppppcVar36) {
                        pppppppcVar25 = pppppppcVar38;
                      }
                    }
                    else if ((*(code *)(pppppppcVar36 + 1) == (code)0x9) &&
                            (pppppppcStack_c8 == (code *******)*pppppppcVar36)) {
                      pppppppcStack_c4 = pppppppcVar38;
                    }
                    ppppppcVar41 = ppppppcVar41 + 1;
                  } while (ppppppcVar41 != ppppppcVar39);
                  if ((int)pppppppcVar25 < 0) {
                    unaff_s8 = pppppppcStack_b4;
                    if (-1 < (int)pppppppcStack_c4) {
                      do {
                        ppppppcVar41 = param_4[2];
LAB_00025600:
                        pppppppcVar36 = (code *******)ppppppcVar41[(int)unaff_s8];
                        pppppppcStack_c8 = pppppppcVar36;
                        iVar40 = (*pcStack_c0)(pppppppcVar43[7] + (int)pppppppcVar36 * 3,
                                               pppppppcStack_c4);
                        if ((iVar40 == 0) &&
                           (iVar40 = (*pcStack_c0)(pppppppcVar43[6] + (int)pppppppcVar36 * 3,
                                                   pppppppcStack_c4), pppppppcVar28 = pppppppcVar6,
                           iVar40 == 0)) {
                          pppppppcVar25 = pppppppcStack_c8;
                          pppppppcVar27 = param_4;
                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);
                          puVar45 = puStack_d8;
                          if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;
                          unaff_s8 = (code *******)((int)unaff_s8 + -1);
                        }
                        unaff_s8 = (code *******)((int)unaff_s8 + 1);
                      } while ((int)unaff_s8 < (int)param_4[1]);
                    }
                  }
                  else {
                    pppppppcVar27 = param_4;
                    pppppppcVar28 = pppppppcVar6;
                    pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43);
                    puVar45 = puStack_d8;
                    if (pppppppcVar36 != (code *******)0x0) goto LAB_000253f8;
                    if ((-1 < (int)pppppppcStack_c4) &&
                       (unaff_s8 = pppppppcStack_b4, 0 < (int)param_4[1])) {
                      ppppppcVar41 = param_4[2];
                      goto LAB_00025600;
                    }
                  }
                }
              }
              else {
                unaff_s8 = pppppppcStack_b4;
                if (0 < (int)param_4[1]) {
                  do {
                    pppppppcVar25 = (code *******)param_4[2][(int)unaff_s8];
                    if ((((byte)*(code *)(*pppppppcVar43 + (int)pppppppcVar25 * 2 + 1) - 8 < 2) &&
                        (pppppppcVar28 = pppppppcVar6,
                        pppppppcStack_c8 == (code *******)(*pppppppcVar43)[(int)pppppppcVar25 * 2]))
                       && (pppppppcVar27 = param_4,
                          pppppppcVar36 = (code *******)(*pcStack_b8)(pppppppcVar43),
                          puVar45 = puStack_d8, pppppppcVar36 != (code *******)0x0))
                    goto LAB_000253f8;
                    unaff_s8 = (code *******)((int)unaff_s8 + 1);
                  } while ((int)unaff_s8 < (int)param_4[1]);
                }
              }
            }
            pppppppcStack_cc = (code *******)((int)pppppppcStack_cc + 1);
          } while ((int)pppppppcStack_cc < (int)pppppppcVar26[5]);
        }
        pppppppcStack_94 = (code *******)0x0;
      }
      ppppppcVar41 = *pppppppcVar26;
      pppppppcVar25 = pppppppcVar43;
      pppppppcVar27 = param_4;
      pppppcVar5 = (code *****)FUN_00023348(&pppppppcStack_94);
      ppppppcVar41[(int)pppppppcVar31] = pppppcVar5;
      pppppppcVar36 = pppppppcStack_94;
      puVar45 = puStack_d8;
      if (pppppppcStack_94 != (code *******)0x0) goto LAB_000253f8;
      goto LAB_000253d8;
    }
  }
LAB_000253f8:
  if (pppppppcStack_74 == (code *******)**(undefined4 **)(puVar45 + -0x7dbc)) {
    return pppppppcVar36;
  }
  pcVar46 = *(code **)(puVar45 + -0x7ddc);
  pcVar47 = FUN_00025af4;
  pppppppcVar38 = pppppppcStack_74;
  (*pcVar46)();
  pcStack_f4 = pcVar47;
  pppppppcStack_f8 = unaff_s8;
  ppppppcStack_fc = ppppppcVar4;
  pppppppcStack_100 = pppppppcVar43;
  pppppppcStack_104 = pppppppcVar42;
  pppppppcStack_108 = pppppppcVar36;
  pppppppcStack_10c = pppppppcVar6;
  pppppppcStack_110 = pppppppcVar31;
  pppppppcStack_114 = param_4;
  pppppppcStack_118 = pppppppcVar26;
  pcStack_158 = pcVar46 + 0x205dc;
  pppppppcStack_11c = (code *******)**(undefined4 **)(pcVar46 + 0x18820);
  pppppppcVar31 = (code *******)pppppppcVar25[3];
  pppppppcVar26 = (code *******)pppppppcVar25[2];
  pppppppcVar6 = (code *******)FUN_00019de8(&ppppppcStack_128);
  if (pppppppcVar6 == (code *******)0x0) {
    pppppppcVar28 = &ppppppcStack_128;
    pppppppcVar26 = pppppppcVar25;
    pppppppcVar27 = pppppppcVar31;
    pppppppcStack_13c = (code *******)FUN_000251ec(pppppppcVar38);
    pppppppcVar6 = pppppppcStack_13c;
    if ((pppppppcStack_13c == (code *******)0x0) && (0 < (int)pppppppcVar31)) {
      pppppppcStack_150 = pppppppcStack_13c;
      pcStack_130 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x619c);
      pcStack_12c = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x6b14);
      pcStack_138 = (code *)(*(int *)(pcStack_158 + -0x7ee8) + -0x7800);
      do {
        unaff_s8 = (code *******)((int)pppppppcVar31 * 4);
        if (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) == (code *****)0x0) {
          pppppppcStack_150 = (code *******)((int)pppppppcStack_150 + 1);
        }
        else {
          pppppppcStack_150 = pppppppcStack_13c;
        }
        if ((int)pppppppcVar38[0x1e] < (int)pppppppcStack_150) {
          pppppppcVar26 = (code *******)0x0;
          pppppppcVar27 = unaff_s8;
          (**(code **)(pcStack_158 + -0x7e40))();
          (**(code **)(pcStack_158 + -0x7db0))(uStack_120);
          pppppppcVar6 = pppppppcStack_13c;
          goto LAB_00025e98;
        }
        uStack_124 = 0;
        ppppppcVar4 = *(code *******)((int)unaff_s8 + (int)(pppppppcVar38[0x19] + -1));
        pppppppcVar31 = (code *******)((int)pppppppcVar31 + -1);
        if ((ppppppcVar4 != (code ******)0x0) &&
           (pppppppcVar42 = (code *******)pppppppcVar38[0x15], 0 < (int)ppppppcVar4[5])) {
          uStack_144 = *(undefined4 *)(pcStack_158 + -0x7ee8);
          uStack_140 = *(undefined4 *)(pcStack_158 + -0x7ee8);
          pppppppcVar43 = pppppppcStack_13c;
          do {
            pppppppcVar26 = (code *******)ppppppcVar4[6][(int)pppppppcVar43];
            iStack_14c = (int)pppppppcVar26 * 8;
            pppppppcVar28 = pppppppcVar31;
            if (((uint)(*pppppppcVar42)[(int)pppppppcVar26 * 2 + 1] & 0x800) == 0) {
LAB_00025d44:
              pppppppcVar27 = pppppppcVar31;
              iVar40 = FUN_0001bbf8(pppppppcVar38,(int)*pppppppcVar42 + iStack_14c);
              if ((iVar40 != 0) &&
                 (*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) != (code *****)0x0)) {
                iVar40 = (*pcStack_138)(*(code ******)((int)unaff_s8 + (int)*pppppppcVar25) + 1,
                                        pppppppcVar42[3][(int)pppppppcVar26]);
                pppppppcVar36 = (code *******)0x1;
                if (iVar40 != 0) {
                  ppppppcVar41 = pppppppcVar25[5];
                  goto LAB_00025c9c;
                }
              }
            }
            else {
              ppppppcStack_148 = pppppppcVar25[3];
              ppppppcStack_134 = pppppppcVar38[0x15];
              pppppppcVar27 = pppppppcVar38;
              pppppppcVar36 = (code *******)FUN_0001f7a0(ppppppcStack_134,pppppppcVar26);
              if ((int)pppppppcVar36 < 1) {
                if (pppppppcVar36 == (code *******)0x0) goto LAB_00025d44;
                ppppppcVar41 = pppppppcVar25[5];
              }
              else {
                if (((int)pppppppcVar31 + (int)pppppppcVar36 <= (int)ppppppcStack_148) &&
                   (((*pppppppcVar25)[(int)((int)pppppppcVar31 + (int)pppppppcVar36)] ==
                     (code *****)0x0 ||
                    (iVar40 = (*pcStack_138)((*pppppppcVar25)
                                             [(int)((int)pppppppcVar31 + (int)pppppppcVar36)] + 1,
                                             ppppppcStack_134[3][(int)pppppppcVar26]), iVar40 == 0))
                   )) goto LAB_00025d44;
                ppppppcVar41 = pppppppcVar25[5];
              }
LAB_00025c9c:
              if (ppppppcVar41 != (code ******)0x0) {
                pppppppcVar27 = (code *******)pppppppcVar42[3][(int)pppppppcVar26];
                pppppppcVar28 = (code *******)((int)pppppppcVar31 + (int)pppppppcVar36);
                pppppppcStack_160 = pppppppcVar26;
                pppppppcStack_15c = pppppppcVar31;
                iVar40 = (*pcStack_12c)(pppppppcVar38,pppppppcVar25 + 4);
                if (iVar40 != 0) goto LAB_00025cfc;
              }
              iVar40 = (*pcStack_130)(&ppppppcStack_128);
              if (iVar40 == 0) {
                pppppppcVar6 = (code *******)0xc;
                goto LAB_00025e84;
              }
            }
LAB_00025cfc:
            pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);
          } while ((int)pppppppcVar43 < (int)ppppppcVar4[5]);
        }
        pppppppcVar28 = &ppppppcStack_128;
        pppppppcVar26 = pppppppcVar25;
        pppppppcVar27 = pppppppcVar31;
        pppppppcVar6 = (code *******)FUN_000251ec(pppppppcVar38);
      } while ((pppppppcVar6 == (code *******)0x0) &&
              (pppppppcVar6 = pppppppcVar31, pppppppcVar31 != (code *******)0x0));
    }
LAB_00025e84:
    (**(code **)(pcStack_158 + -0x7db0))(uStack_120);
  }
LAB_00025e98:
  if (pppppppcStack_11c == (code *******)**(undefined4 **)(pcStack_158 + -0x7dbc)) {
    return pppppppcVar6;
  }
  pcVar46 = *(code **)(pcStack_158 + -0x7ddc);
  pcVar47 = FUN_00025ee8;
  pppppppcVar34 = pppppppcStack_11c;
  (*pcVar46)();
  pcStack_218 = pcVar46 + 0x201e8;
  pppppppcStack_19c = (code *******)**(undefined4 **)(pcVar46 + 0x1842c);
  pppppppcStack_204 = (code *******)0x0;
  pppppppcVar34[3] = (code ******)pppppppcVar28;
  pppppppcVar34[2] = (code ******)0x0;
  pppppppcVar34[6] = (code ******)0x0;
  *(byte *)(pppppppcVar34 + 7) = (byte)*(code *)(pppppppcVar34 + 7) & 9;
  pppppppcVar32 = (code *******)*pppppppcVar34;
  pppppppcVar29 = pppppppcVar28;
  pppppppcStack_198 = pppppppcVar31;
  pppppppcStack_194 = pppppppcVar38;
  pppppppcStack_190 = pppppppcVar25;
  pppppppcStack_18c = pppppppcVar6;
  pppppppcStack_188 = pppppppcVar36;
  pppppppcStack_184 = pppppppcVar42;
  pppppppcStack_180 = pppppppcVar43;
  ppppppcStack_17c = ppppppcVar4;
  pppppppcStack_178 = unaff_s8;
  pcStack_174 = pcVar47;
  if (pppppppcVar34[1] < (code ******)0x88) {
    pppppppcVar38 = (code *******)0x88;
    pppppppcVar36 = pppppppcVar27;
    pppppppcVar32 = (code *******)(**(code **)(pcVar46 + 0x183d0))(pppppppcVar32);
    if (pppppppcVar32 != (code *******)0x0) {
      pppppppcVar34[1] = (code ******)0x88;
      *pppppppcVar34 = (code ******)pppppppcVar32;
      goto LAB_00025f80;
    }
    pppppppcVar31 = (code *******)0xc;
  }
  else {
LAB_00025f80:
    pppppppcVar34[2] = (code ******)0x88;
    pppppppcVar36 = (code *******)0x88;
    pppppppcVar38 = (code *******)0x0;
    (**(code **)(pcStack_218 + -0x7e40))(pppppppcVar32);
    pppppppcVar32[0x10] = (code ******)0x1f;
    if (pppppppcVar27 < (code *******)0xaaaaaaa) {
      pppppppcVar32[1] = (code ******)((int)pppppppcVar27 + 1U);
      ppppppcVar4 = (code ******)
                    (**(code **)(pcStack_218 + -0x7e1c))((int)((int)pppppppcVar27 + 1U) * 8);
      *pppppppcVar32 = ppppppcVar4;
      if (pppppppcVar27 == (code *******)0x0) {
        pppppppcVar6 = (code *******)0x1;
      }
      else {
        pppppppcVar6 = (code *******)0x1;
        do {
          pppppppcVar6 = (code *******)((int)pppppppcVar6 << 1);
        } while (pppppppcVar6 <= pppppppcVar27);
      }
      pppppppcVar38 = pppppppcVar6;
      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0xc);
      pppppppcVar32[8] = ppppppcVar4;
      pppppppcVar6 = (code *******)((int)pppppppcVar6 + -1);
      pppppppcVar32[0x11] = (code ******)pppppppcVar6;
      ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7df8))();
      pppppppcVar32[0x17] = ppppppcVar4;
      pbVar7 = (byte *)(**(code **)(pcStack_218 + -0x7e6c))(0xe);
      if ((((*pbVar7 & 0xdf) == 0x55) && ((pbVar7[1] & 0xdf) == 0x54)) &&
         (pppppppcVar38 = (code *******)0x4, (pbVar7[2] & 0xdf) == 0x46)) {
        iVar40 = 3;
        if (pbVar7[3] == 0x2d) {
          iVar40 = 4;
        }
        pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7fc8) + -0x30bc);
        iVar40 = (**(code **)(pcStack_218 + -0x7d90))(pbVar7 + iVar40);
        if (iVar40 == 0) {
          *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xdf | 0x20;
        }
      }
      *(byte *)(pppppppcVar32 + 0x16) = (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef;
      if (1 < (int)pppppppcVar32[0x17]) {
        if (((uint)pppppppcVar32[0x16] & 0x20000000) == 0) {
          pppppppcVar38 = (code *******)0x1;
          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7eb8))(0x20);
          pppppppcVar32[0xf] = ppppppcVar4;
          if (ppppppcVar4 == (code ******)0x0) goto LAB_00026e64;
          pppppppcVar42 = (code *******)0x0;
          unaff_s8 = (code *******)0x1;
          do {
            pppppppcVar6 = (code *******)((int)pppppppcVar42 << 3);
            uVar21 = 0;
            do {
              pppppppcVar31 = (code *******)(**(code **)(pcStack_218 + -0x7e50))(pppppppcVar6);
              if (pppppppcVar31 != (code *******)0xffffffff) {
                pppppppcVar38 = *(code ********)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]);
                *(uint *)((int)pppppppcVar42 + (int)pppppppcVar32[0xf]) =
                     (uint)pppppppcVar38 | 1 << (uVar21 & 0x1f);
              }
              if ((((uint)pppppppcVar6 & 0xffffff80) == 0) && (pppppppcVar31 != pppppppcVar6)) {
                *(byte *)(pppppppcVar32 + 0x16) =
                     (byte)*(code *)(pppppppcVar32 + 0x16) & 0xef | 0x10;
              }
              uVar21 = uVar21 + 1;
              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);
            } while (uVar21 != 0x20);
            pppppppcVar42 = pppppppcVar42 + 1;
            pppppppcVar43 = (code *******)0x20;
          } while (pppppppcVar42 != (code *******)0x20);
        }
        else {
          pppppppcVar32[0xf] = (code ******)(*(int *)(pcStack_218 + -0x7fc8) - 0x338c);
        }
      }
      if ((*pppppppcVar32 != (code ******)0x0) &&
         (pppppppcVar6 = pppppppcVar27, pppppppcVar32[8] != (code ******)0x0)) {
        pppppppcStack_204 = (code *******)0x0;
        pppppppcVar43 = (code *******)pppppppcVar34[5];
        pppppppcVar42 = (code *******)((uint)pppppppcVar28 & 0x400000);
        bVar19 = pppppppcVar42 != (code *******)0x0;
        unaff_s8 = (code *******)(uint)bVar19;
        pppppppcVar36 = (code *******)0x4c;
        pppppppcVar38 = (code *******)0x0;
        (**(code **)(pcStack_218 + -0x7e40))(apppppppcStack_1ec);
        if (pppppppcVar43 != (code *******)0x0) {
          unaff_s8 = (code *******)0x1;
        }
        cStack_1a5 = (char)unaff_s8;
        ppppppcStack_1a0 = pppppppcVar32[0x17];
        bStack_1a7 = (byte)((uint)((int)pppppppcVar32[0x16] << 2) >> 0x1f);
        bStack_1a6 = (byte)((uint)((int)pppppppcVar32[0x16] << 3) >> 0x1f);
        pppppppcStack_1f0 = pppppppcVar26;
        pppppppcStack_1c4 = pppppppcVar27;
        pppppppcStack_1c0 = pppppppcVar27;
        pppppppcStack_1bc = pppppppcVar27;
        pppppppcStack_1b8 = pppppppcVar27;
        pppppppcStack_1b0 = pppppppcVar43;
        uStack_1a8 = bVar19;
        if (0 < (int)pppppppcVar27) {
          pppppppcVar38 = (code *******)((int)pppppppcVar27 + 1);
          pppppppcVar25 = (code *******)FUN_00019684(&pppppppcStack_1f0);
          pppppppcVar31 = pppppppcVar27;
          if (pppppppcVar25 == (code *******)0x0) goto LAB_00026118;
          goto LAB_000261b4;
        }
LAB_00026118:
        if (cStack_1a5 != '\0') {
          pppppppcVar26 = apppppppcStack_1ec[0];
        }
        apppppppcStack_1ec[0] = pppppppcVar26;
        if (pppppppcVar42 == (code *******)0x0) {
          if ((int)pppppppcVar32[0x17] < 2) {
            if (pppppppcVar43 != (code *******)0x0) {
              FUN_00018720();
            }
          }
          else {
            FUN_0001a644(&pppppppcStack_1f0);
          }
        }
        else {
          if (1 < (int)pppppppcVar32[0x17]) {
            pppppppcVar26 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x4f58);
            pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x697c);
            do {
              pppppppcVar25 = (code *******)FUN_0001b0a8(&pppppppcStack_1f0);
              pppppppcVar31 = (code *******)&pppppppcStack_1f0;
              if (pppppppcVar25 != (code *******)0x0) break;
              if (((int)pppppppcVar27 <= iStack_1d0) ||
                 (pppppppcVar38 = (code *******)(iStack_1cc << 1),
                 (int)pppppppcVar32[0x17] + iStack_1d4 < iStack_1cc)) goto LAB_000263f8;
              pppppppcVar25 = (code *******)(*(code *)pppppppcVar43)(&pppppppcStack_1f0);
            } while (pppppppcVar25 == (code *******)0x0);
            goto LAB_000261b4;
          }
          FUN_0001a578(&pppppppcStack_1f0);
        }
LAB_000263f8:
        pppppppcStack_204 = (code *******)0x0;
        pppppppcVar34[6] = (code ******)0x0;
        pppppppcVar43 = (code *******)*pppppppcVar34;
        pppppppcVar43[0x20] = (code ******)pppppppcVar28;
        pppppppcVar31 = (code *******)&pppppppcStack_1f0;
        FUN_0001c7cc(&ppppppcStack_1fc,pppppppcVar31,(uint)pppppppcVar28 | 0x800000);
        pppppppcStack_21c = (code *******)&pppppppcStack_204;
        uStack_220 = 0;
        pppppppcVar38 = pppppppcVar34;
        pppppppcVar6 = (code *******)
                       FUN_00023144(pppppppcVar31,pppppppcVar34,&ppppppcStack_1fc,pppppppcVar28);
        pppppppcVar29 = (code *******)0x2;
        if (pppppppcStack_204 == (code *******)0x0) {
          pppppppcVar36 = (code *******)0x0;
          pppppppcVar38 = (code *******)0x0;
          pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43);
          pppppppcVar31 = pppppppcVar27;
          if (pppppppcVar6 != (code *******)0x0) {
LAB_000264d8:
            pppppppcVar29 = (code *******)0x10;
            pppppppcVar38 = pppppppcVar6;
            pppppppcVar36 = pppppppcVar27;
            pppppppcVar31 = (code *******)FUN_00019a48(pppppppcVar43);
          }
          if ((pppppppcVar27 == (code *******)0x0) ||
             (pcVar46 = *(code **)(pcStack_218 + -0x7e1c), pppppppcVar31 == (code *******)0x0)) {
            pppppppcStack_204 = (code *******)0xc;
            goto LAB_0002671c;
          }
          pppppppcVar32[0xd] = (code ******)pppppppcVar31;
          pppppppcVar27 = (code *******)*pppppppcVar34;
          ppppppcVar4 = pppppppcVar27[1];
          iVar40 = (int)ppppppcVar4 << 2;
          pppppppcVar28 = (code *******)(*pcVar46)(iVar40);
          pppppppcVar27[3] = (code ******)pppppppcVar28;
          pppppppcVar43 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(iVar40);
          pppppppcVar27[4] = (code ******)pppppppcVar43;
          pppppppcVar6 = (code *******)((int)ppppppcVar4 * 0xc);
          pppppppcVar26 = (code *******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);
          pppppppcVar27[5] = (code ******)pppppppcVar26;
          ppppppcVar4 = (code ******)(**(code **)(pcStack_218 + -0x7e1c))(pppppppcVar6);
          pppppppcVar27[6] = ppppppcVar4;
          pppppppcVar31 = pppppppcVar27;
          if (pppppppcVar28 == (code *******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else if (pppppppcVar43 == (code *******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else if (pppppppcVar26 == (code *******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else if (ppppppcVar4 == (code ******)0x0) {
            pppppppcVar25 = (code *******)0xc;
          }
          else {
            ppppppcVar4 = (code ******)
                          (**(code **)(pcStack_218 + -0x7e1c))((int)pppppppcVar34[6] << 2);
            pppppppcVar27[0x21] = ppppppcVar4;
            if (ppppppcVar4 != (code ******)0x0) {
              ppppppcVar4 = (code ******)0x0;
              if (pppppppcVar34[6] != (code ******)0x0) {
                do {
                  pppppppcVar27[0x21][(int)ppppppcVar4] = (code *****)ppppppcVar4;
                  ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);
                } while (ppppppcVar4 < pppppppcVar34[6]);
              }
              FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x75c0,
                           pppppppcVar27);
              ppppppcVar4 = pppppppcVar34[6];
              if (ppppppcVar4 == (code ******)0x0) {
LAB_0002672c:
                (**(code **)(pcStack_218 + -0x7db0))(pppppppcVar27[0x21]);
                pppppppcVar27[0x21] = (code ******)0x0;
              }
              else {
                ppppppcVar41 = pppppppcVar27[0x21];
                if (*ppppppcVar41 == (code *****)0x0) {
                  ppppppcVar39 = (code ******)0x0;
                  do {
                    ppppppcVar41 = ppppppcVar41 + 1;
                    ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);
                    if (ppppppcVar4 == ppppppcVar39) {
                      if (ppppppcVar39 == ppppppcVar4) goto LAB_0002672c;
                      break;
                    }
                  } while ((code ******)*ppppppcVar41 == ppppppcVar39);
                }
              }
            }
            pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x6304);
            pppppppcVar25 =
                 (code *******)FUN_0001890c(pppppppcVar27[0xd],pppppppcVar38,pppppppcVar34);
            pppppppcVar36 = pppppppcVar27;
            if (pppppppcVar25 == (code *******)0x0) {
              pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x3280);
              pppppppcVar25 = (code *******)FUN_0001890c(pppppppcVar27[0xd]);
              if (pppppppcVar25 == (code *******)0x0) {
                pppppppcVar6 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7658);
                FUN_000189a8(pppppppcVar27[0xd],*(int *)(pcStack_218 + -0x7ee8) + -0x74f4);
                pppppppcVar38 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x1cb0);
                pppppppcVar26 = (code *******)FUN_000189a8(pppppppcVar27[0xd]);
                pppppppcVar25 = pppppppcVar26;
                if (pppppppcVar26 == (code *******)0x0) {
                  pppppppcVar43 = (code *******)0x0;
                  unaff_s8 = &ppppppcStack_1fc;
                  pppppppcStack_210 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2cb8);
                  pppppppcVar6 = (code *******)0x0;
                  pcVar46 = pcStack_218;
LAB_0002676c:
                  if ((code *******)pppppppcVar27[2] != pppppppcVar6) {
LAB_00026778:
                    pppppppcVar28 = (code *******)((int)pppppppcVar6 * 0xc);
                    pppppppcVar29 = (code *******)0x1;
                    if (*(code ******)((int)pppppppcVar28 + (int)(pppppppcVar27[6] + 1)) ==
                        (code *****)0x0) {
                      pppppppcVar38 = pppppppcVar27;
                      pppppppcVar36 = pppppppcVar6;
                      pppppppcVar25 = (code *******)(*(code *)pppppppcStack_210)(unaff_s8);
                      if (pppppppcVar25 != (code *******)0x0) goto LAB_000261b4;
                      pppppppcVar28 = (code *******)((int)pppppppcVar28 + (int)pppppppcVar27[6]);
                      pcVar46 = pcStack_218;
                      if (pppppppcVar28[1] == (code ******)0x0) {
                        (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);
                        pppppppcVar43 = (code *******)0x1;
                        pcVar46 = pcStack_218;
                      }
                    }
                    pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);
                    goto LAB_0002676c;
                  }
                  if (pppppppcVar43 != (code *******)0x0) {
                    pppppppcVar43 = (code *******)0x0;
                    pppppppcVar6 = (code *******)0x0;
                    goto LAB_00026778;
                  }
                  if (((((uint)pppppppcVar34[7] & 0x8000000) == 0) &&
                      (pppppppcVar34[6] != (code ******)0x0)) &&
                     ((char)*(code *)(pppppppcVar27 + 0x16) < '\0')) {
                    pppppppcVar6 = (code *******)pppppppcVar27[2];
                  }
                  else {
                    if (pppppppcVar27[0x13] == (code ******)0x0) goto LAB_00026918;
                    pppppppcVar6 = (code *******)pppppppcVar27[2];
                  }
                  ppppppcVar4 = (code ******)
                                (**(code **)(pcVar46 + -0x7e1c))((int)pppppppcVar6 * 0xc);
                  pppppppcVar27[7] = ppppppcVar4;
                  if (ppppppcVar4 == (code ******)0x0) {
                    pppppppcVar25 = (code *******)0xc;
                    goto LAB_000261b4;
                  }
                  pcVar46 = pcStack_218;
                  if (pppppppcVar6 != (code *******)0x0) {
                    iVar40 = 0;
                    ppppppcVar4 = (code ******)0x0;
                    do {
                      pcVar47 = (code *)((int)pppppppcVar27[7] + iVar40);
                      *pcVar47 = (code)0x0;
                      pcVar47[1] = (code)0x0;
                      pcVar47[2] = (code)0x0;
                      pcVar47[3] = (code)0x0;
                      pcVar47[4] = (code)0x0;
                      pcVar47[5] = (code)0x0;
                      pcVar47[6] = (code)0x0;
                      pcVar47[7] = (code)0x0;
                      pcVar47[8] = (code)0x0;
                      pcVar47[9] = (code)0x0;
                      pcVar47[10] = (code)0x0;
                      pcVar47[0xb] = (code)0x0;
                      ppppppcVar4 = (code ******)((int)ppppppcVar4 + 1);
                      iVar40 = iVar40 + 0xc;
                    } while (ppppppcVar4 < pppppppcVar27[2]);
                    if (pppppppcVar27[2] != (code ******)0x0) {
                      unaff_s8 = (code *******)0x0;
                      pcStack_20c = (code *)(*(int *)(pcStack_218 + -0x7ee8) + -0x6878);
                      pppppppcStack_210 = (code *******)0x0;
                      do {
                        pppppppcVar6 = *(code ********)((int)unaff_s8 + (int)(pppppppcVar27[6] + 2))
                        ;
                        if (0 < *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1))) {
                          pppppppcVar28 = (code *******)0x0;
                          do {
                            pppppppcVar38 = pppppppcStack_210;
                            iVar40 = (*pcStack_20c)(pppppppcVar27[7] + (int)*pppppppcVar6 * 3);
                            pppppppcVar25 = (code *******)0xc;
                            if (iVar40 == 0) goto LAB_000261b4;
                            pppppppcVar28 = (code *******)((int)pppppppcVar28 + 1);
                            pppppppcVar6 = pppppppcVar6 + 1;
                            pcVar46 = pcStack_218;
                          } while ((int)pppppppcVar28 <
                                   *(int *)((int)unaff_s8 + (int)(pppppppcVar27[6] + 1)));
                        }
                        pppppppcStack_210 = (code *******)((int)pppppppcStack_210 + 1);
                        unaff_s8 = unaff_s8 + 3;
                      } while (pppppppcStack_210 < pppppppcVar27[2]);
                    }
                  }
LAB_00026918:
                  pppppppcStack_204 = (code *******)0x0;
                  if (((((uint)pppppppcVar32[0x16] & 0x20000000) != 0) &&
                      (pppppppcVar42 == (code *******)0x0)) &&
                     (pppppppcVar34[5] == (code ******)0x0)) {
                    pppppppcVar6 = pppppppcVar43;
                    if (pppppppcVar32[2] != (code ******)0x0) {
                      pppppppcVar36 = (code *******)(*(int *)(pcVar46 + -0x7fc8) + -0x3438);
                      if (*(byte *)(*pppppppcVar32 + 1) < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00026a88. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                        pppppppcVar26 =
                             (code *******)
                             (*(pcVar46 + (int)pppppppcVar36[*(byte *)(*pppppppcVar32 + 1)]))();
                        return pppppppcVar26;
                      }
                      (**(code **)(pcVar46 + -0x7ea4))(0);
                      if (pppppppcVar6 != (code *******)0x0) {
                        pppppppcVar36 = (code *******)0x7;
                        pppppppcVar26 = (code *******)0x0;
                        do {
                          ppppppcVar4 = *pppppppcVar32 + (int)pppppppcVar26 * 2;
                          if (*(char *)(ppppppcVar4 + 1) == '\x01') {
                            if (*(char *)ppppppcVar4 < '\0') {
                              ppppppcVar4[1] = (code *****)((uint)ppppppcVar4[1] & 0xfffffbff);
                            }
                          }
                          else if (*(char *)(ppppppcVar4 + 1) == '\x05') {
                            *(char *)(ppppppcVar4 + 1) = '\a';
                          }
                          pppppppcVar26 = (code *******)((int)pppppppcVar26 + 1);
                        } while (pppppppcVar26 < pppppppcVar32[2]);
                      }
                    }
                    pppppppcVar32[0x17] = (code ******)0x1;
                    if (0 < (int)pppppppcVar32[0x13]) {
                      pppppppcVar6 = (code *******)0x1;
                    }
                    *(byte *)(pppppppcVar32 + 0x16) =
                         (byte)*(code *)(pppppppcVar32 + 0x16) & 0x9f |
                         (byte)(((uint)pppppppcVar6 & 1) << 6);
                  }
                  ppppppcVar4 = (code ******)pppppppcVar32[0xd][3][7];
                  pppppppcVar32[0x12] = ppppppcVar4;
                  pppppppcVar38 = (code *******)(pppppppcVar32[6] + (int)ppppppcVar4 * 3);
                  pppppppcVar31 = (code *******)FUN_0001ad7c(&ppppppcStack_1fc);
                  pppppppcVar6 = pppppppcVar31;
                  pppppppcStack_200 = pppppppcVar31;
                  if (pppppppcVar31 == (code *******)0x0) {
                    if ((0 < (int)pppppppcVar32[0x13]) &&
                       (pppppppcVar27 = (code *******)0x0, 0 < iStack_1f8)) {
                      pppppppcVar42 = &ppppppcStack_1fc;
                      pppppppcVar28 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x7800);
                      pppppppcVar43 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x5750);
                      pppppppcVar27 = (code *******)0x0;
                      do {
                        pppppppcVar29 = (code *******)piStack_1f4[(int)pppppppcVar27];
                        pppppppcVar36 = (code *******)(*pppppppcVar32 + (int)pppppppcVar29 * 2);
                        if (*(code *)(pppppppcVar36 + 1) == (code)0x4) {
                          iVar40 = 0;
                          piVar8 = piStack_1f4;
                          if (iStack_1f8 < 1) {
LAB_00026bb4:
                            if (iVar40 != iStack_1f8) {
                              pppppppcVar26 =
                                   (code *******)*pppppppcVar32[5][(int)pppppppcVar29 * 3 + 2];
                              iVar40 = (*(code *)pppppppcVar28)(pppppppcVar42,pppppppcVar26);
                              if (iVar40 == 0) {
                                pppppppcVar38 =
                                     (code *******)(pppppppcVar32[6] + (int)pppppppcVar26 * 3);
                                pppppppcVar27 =
                                     (code *******)(*(code *)pppppppcVar43)(pppppppcVar42);
                                pppppppcVar6 = pppppppcVar27;
                                if (pppppppcVar27 != (code *******)0x0) goto LAB_00026ce0;
                              }
                            }
                          }
                          else {
                            do {
                              ppppppcVar4 = *pppppppcVar32 + *piVar8 * 2;
                              if ((*(char *)(ppppppcVar4 + 1) == '\t') &&
                                 ((code ******)*ppppppcVar4 == *pppppppcVar36)) goto LAB_00026bb4;
                              iVar40 = iVar40 + 1;
                              piVar8 = piVar8 + 1;
                            } while (iStack_1f8 != iVar40);
                          }
                        }
                        pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);
                      } while ((int)pppppppcVar27 < iStack_1f8);
                    }
                    pppppppcVar29 = (code *******)0x0;
                    pppppppcVar36 = &ppppppcStack_1fc;
                    pppppppcVar38 = pppppppcVar32;
                    ppppppcVar4 = (code ******)FUN_0001d798(&pppppppcStack_200);
                    pppppppcVar32[9] = ppppppcVar4;
                    pppppppcVar6 = pppppppcStack_200;
                    if (ppppppcVar4 != (code ******)0x0) {
                      pppppppcVar29 = (code *******)0x1;
                      if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {
                        pppppppcVar32[0xc] = ppppppcVar4;
                        pppppppcVar32[0xb] = ppppppcVar4;
                        pppppppcVar32[10] = ppppppcVar4;
                      }
                      else {
                        pppppppcVar42 = &ppppppcStack_1fc;
                        pppppppcVar28 = (code *******)&pppppppcStack_200;
                        pppppppcVar27 = (code *******)(*(int *)(pcStack_218 + -0x7ee8) + -0x2868);
                        ppppppcVar4 = (code ******)
                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42);
                        pppppppcVar32[10] = ppppppcVar4;
                        ppppppcVar4 = (code ******)
                                      FUN_0001d798(pppppppcVar28,pppppppcVar32,pppppppcVar42,2);
                        pppppppcVar32[0xb] = ppppppcVar4;
                        pppppppcVar29 = (code *******)0x6;
                        pppppppcVar38 = pppppppcVar32;
                        pppppppcVar36 = pppppppcVar42;
                        ppppppcVar4 = (code ******)FUN_0001d798(pppppppcVar28);
                        pppppppcVar32[0xc] = ppppppcVar4;
                        pppppppcVar6 = pppppppcStack_200;
                        if (((pppppppcVar32[10] == (code ******)0x0) ||
                            (pppppppcVar32[0xb] == (code ******)0x0)) ||
                           (ppppppcVar4 == (code ******)0x0)) goto LAB_00026ce0;
                      }
                      (**(code **)(pcStack_218 + -0x7db0))(piStack_1f4);
                      pppppppcVar6 = pppppppcVar31;
                    }
                  }
LAB_00026ce0:
                  pppppppcStack_204 = pppppppcVar6;
                  FUN_0001db98(pppppppcVar34);
                  FUN_0001dc20(&pppppppcStack_1f0);
                  pppppppcVar31 = pppppppcStack_204;
                  if (pppppppcStack_204 != (code *******)0x0) {
                    FUN_0001dc9c(pppppppcVar32);
                    *pppppppcVar34 = (code ******)0x0;
                    pppppppcVar34[1] = (code ******)0x0;
                    pppppppcVar31 = pppppppcStack_204;
                  }
                  goto LAB_00026d24;
                }
              }
            }
          }
        }
        else {
          pppppppcVar36 = (code *******)0x0;
          if (pppppppcVar6 != (code *******)0x0) {
            pppppppcVar27 = (code *******)FUN_00019a48(pppppppcVar43,0);
            goto LAB_000264d8;
          }
LAB_0002671c:
          pppppppcVar32[0xd] = (code ******)0x0;
          pppppppcVar25 = pppppppcStack_204;
        }
LAB_000261b4:
        pppppppcStack_204 = pppppppcVar25;
        pppppppcVar27 = pppppppcVar31;
        FUN_0001db98(pppppppcVar34);
        FUN_0001dc20(&pppppppcStack_1f0);
        FUN_0001dc9c(pppppppcVar32);
        *pppppppcVar34 = (code ******)0x0;
        pppppppcVar34[1] = (code ******)0x0;
        pppppppcVar31 = pppppppcStack_204;
        goto LAB_00026d24;
      }
    }
LAB_00026e64:
    pppppppcStack_204 = (code *******)0xc;
    FUN_0001dc9c(pppppppcVar32);
    *pppppppcVar34 = (code ******)0x0;
    pppppppcVar34[1] = (code ******)0x0;
    pppppppcVar31 = pppppppcStack_204;
  }
LAB_00026d24:
  if (pppppppcStack_19c == (code *******)**(undefined4 **)(pcStack_218 + -0x7dbc)) {
    return pppppppcVar31;
  }
  pcVar46 = *(code **)(pcStack_218 + -0x7ddc);
  uVar48 = 0x26e9c;
  pppppppcVar31 = pppppppcStack_19c;
  (*pcVar46)();
  pppppppcStack_300 = (code *******)(pcVar46 + 0x1f234);
  pppppppcStack_25c = (code *******)**(undefined4 **)(pcVar46 + 0x17478);
  pppppppcVar25 = pppppppcVar38;
  pppppppcStack_258 = pppppppcVar32;
  pppppppcStack_254 = pppppppcVar34;
  pppppppcStack_250 = pppppppcVar27;
  pppppppcStack_24c = pppppppcVar6;
  pppppppcStack_248 = pppppppcVar28;
  pppppppcStack_244 = pppppppcVar42;
  pppppppcStack_240 = pppppppcVar43;
  pppppppcStack_23c = pppppppcVar26;
  pppppppcStack_238 = unaff_s8;
  uStack_234 = uVar48;
  pppppppcStack_2ec = (code *******)(**(code **)(pcVar46 + 0x17418))(0x2c00);
  if (pppppppcStack_2ec == (code *******)0x0) {
    pppppppcVar43 = (code *******)0x0;
  }
  else {
    pppppppcStack_2e0 = pppppppcStack_2ec + 0x300;
    pppppppcVar38[0xb] = (code ******)0x0;
    pppppppcVar38[0xc] = (code ******)0x0;
    pppppppcStack_2e4 = pppppppcStack_2ec;
    FUN_0001a53c(appppppcStack_2bc);
    pppppppcVar43 = pppppppcStack_300;
    if ((int)pppppppcVar38[2] < 1) {
      pppppppcVar27 = (code *******)0x0;
    }
    else {
      pppppppcVar27 = (code *******)0x0;
      pppppppcStack_2f4 = (code *******)0x0;
      ppppppcStack_2d8 = pppppppcStack_300[-0x1fba] + -0x1886;
      ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0x1867;
      ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x14a1;
      do {
        pppppppcStack_2f0 = (code *******)((int)pppppppcStack_2f4 * 4);
        pppppppcVar6 = (code *******)
                       (*pppppppcVar31 +
                       (int)*(code ******)((int)pppppppcStack_2f4 * 4 + (int)pppppppcVar38[3]) * 2);
        pppppppcVar26 = (code *******)(uint)(byte)*(code *)(pppppppcVar6 + 1);
        pppppppcVar32 = (code *******)((uint)((int)pppppppcVar6[1] << 8) >> 0x16);
        if (pppppppcVar26 == (code *******)0x1) {
          FUN_00018540(appppppcStack_2bc,*(code *)pppppppcVar6);
          pppppppcVar43 = pppppppcStack_300;
LAB_00026f88:
          if (pppppppcVar32 == (code *******)0x0) goto LAB_00027078;
          if (((uint)pppppppcVar32 & 0x20) != 0) {
            pppppppcVar34 = appppppcStack_2bc;
            pppppppcVar28 = (code *******)FUN_00018598(pppppppcVar34,10);
            FUN_0001a53c(pppppppcVar34);
            pppppppcVar43 = pppppppcStack_300;
            if (pppppppcVar28 == (code *******)0x0) goto LAB_00027478;
            FUN_00018540(appppppcStack_2bc,10);
            pppppppcVar43 = pppppppcStack_300;
          }
          if (((uint)pppppppcVar32 & 0x80) == 0) {
            if (((uint)pppppppcVar32 & 4) == 0) {
LAB_0002700c:
              pppppppcVar32 = (code *******)((uint)pppppppcVar32 & 8);
              if (pppppppcVar32 == (code *******)0x0) {
LAB_00027078:
                if ((int)pppppppcVar27 < 1) {
                  pppppppcVar34 = (code *******)0x0;
                }
                else {
                  pppppppcVar32 = pppppppcStack_2ec + 0x300;
                  pppppppcVar34 = (code *******)0x0;
                  pppppppcStack_2f8 = (code *******)pppppppcVar43[-0x1fba];
                  pppppppcVar42 = pppppppcStack_2ec;
                  do {
                    if ((pppppppcVar26 != (code *******)0x1) ||
                       (iVar40 = FUN_00018598(pppppppcVar32,*(code *)pppppppcVar6),
                       pppppppcVar43 = pppppppcStack_300, iVar40 != 0)) {
                      pppppppcVar37 = appppppcStack_2bc;
                      uVar21 = 0;
                      pppppppcVar25 = pppppppcVar37;
                      pppppppcVar36 = pppppppcVar32;
                      pppppppcVar29 = appppppcStack_2bc + 8;
                      do {
                        ppppppcVar4 = *pppppppcVar25;
                        ppppppcVar41 = *pppppppcVar36;
                        *pppppppcVar29 = (code ******)((uint)ppppppcVar4 & (uint)ppppppcVar41);
                        uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)ppppppcVar41;
                        pppppppcVar25 = pppppppcVar25 + 1;
                        pppppppcVar36 = pppppppcVar36 + 1;
                        pppppppcVar29 = pppppppcVar29 + 1;
                      } while (pppppppcVar25 != appppppcStack_2bc + 8);
                      if (uVar21 != 0) {
                        pppppppcVar36 = appppppcStack_27c;
                        pppppppcVar28 = (code *******)0x0;
                        uVar21 = 0;
                        pppppppcVar43 = pppppppcVar32;
                        do {
                          pppppppcVar29 = (code *******)*pppppppcVar37;
                          ppppppcVar4 = *pppppppcVar43;
                          ppppppcVar41 = (code ******)(~(uint)pppppppcVar29 & (uint)ppppppcVar4);
                          *pppppppcVar36 = ppppppcVar41;
                          uVar21 = uVar21 | (uint)ppppppcVar41;
                          ppppppcVar4 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar29);
                          *pppppppcVar37 = ppppppcVar4;
                          pppppppcVar28 = (code *******)((uint)pppppppcVar28 | (uint)ppppppcVar4);
                          pppppppcVar37 = pppppppcVar37 + 1;
                          pppppppcVar43 = pppppppcVar43 + 1;
                          pppppppcVar36 = pppppppcVar36 + 1;
                        } while (pppppppcVar43 != pppppppcVar32 + 8);
                        if (uVar21 != 0) {
                          pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;
                          *pppppppcVar43 = appppppcStack_27c[0];
                          pppppppcVar43[1] = appppppcStack_27c[1];
                          pppppppcVar43[2] = appppppcStack_27c[2];
                          pppppppcVar43[3] = appppppcStack_27c[3];
                          pppppppcVar43[4] = ppppppcStack_26c;
                          pppppppcVar43[5] = ppppppcStack_268;
                          pppppppcVar43[6] = ppppppcStack_264;
                          pppppppcVar43[7] = ppppppcStack_260;
                          *pppppppcVar32 = appppppcStack_2bc[8];
                          pppppppcVar32[1] = appppppcStack_2bc[9];
                          pppppppcVar32[2] = appppppcStack_2bc[10];
                          pppppppcVar32[3] = appppppcStack_2bc[0xb];
                          pppppppcVar32[4] = ppppppcStack_28c;
                          pppppppcVar32[5] = ppppppcStack_288;
                          pppppppcVar32[6] = ppppppcStack_284;
                          pppppppcVar32[7] = ppppppcStack_280;
                          iVar40 = (*(code *)ppppppcStack_2dc)
                                             (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,
                                              pppppppcVar42);
                          if (iVar40 != 0) goto LAB_000275d4;
                          pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);
                        }
                        iVar40 = (*(code *)ppppppcStack_2e8)
                                           (pppppppcVar42,
                                            *(undefined4 *)
                                             ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));
                        if (iVar40 == 0) goto LAB_000275d4;
                        pppppppcVar43 = pppppppcStack_300;
                        if (pppppppcVar28 == (code *******)0x0) break;
                      }
                    }
                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);
                    pppppppcVar32 = pppppppcVar32 + 8;
                    pppppppcVar42 = pppppppcVar42 + 3;
                  } while ((int)pppppppcVar34 < (int)pppppppcVar27);
                }
                if (pppppppcVar27 == pppppppcVar34) {
                  pppppppcVar43 = pppppppcStack_2e0 + (int)pppppppcVar27 * 8;
                  *pppppppcVar43 = appppppcStack_2bc[0];
                  pppppppcVar43[1] = appppppcStack_2bc[1];
                  pppppppcVar43[2] = appppppcStack_2bc[2];
                  pppppppcVar43[3] = appppppcStack_2bc[3];
                  pppppppcVar43[4] = appppppcStack_2bc[4];
                  pppppppcVar43[5] = appppppcStack_2bc[5];
                  pppppppcVar43[6] = appppppcStack_2bc[6];
                  pppppppcVar43[7] = appppppcStack_2bc[7];
                  iVar40 = (*(code *)ppppppcStack_2d8)
                                     (pppppppcStack_2e4 + (int)pppppppcVar27 * 3,
                                      *(undefined4 *)
                                       ((int)pppppppcStack_2f0 + (int)pppppppcVar38[3]));
                  if (iVar40 != 0) {
LAB_000275d4:
                    if ((int)pppppppcVar27 < 1) {
                      pppppppcVar27 = (code *******)0xffffffff;
                      pppppppcVar43 = pppppppcStack_300;
                    }
                    else {
                      pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;
                      pppppppcVar32 = pppppppcStack_2ec;
                      do {
                        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);
                        pppppppcVar32 = pppppppcVar32 + 3;
                        pppppppcVar27 = (code *******)0xffffffff;
                        pppppppcVar43 = pppppppcStack_300;
                      } while (pppppppcVar32 != pppppppcVar34);
                    }
                    goto LAB_00027610;
                  }
                  FUN_0001a53c(appppppcStack_2bc);
                  pppppppcVar27 = (code *******)((int)pppppppcVar27 + 1);
                  pppppppcVar43 = pppppppcStack_300;
                }
              }
              else if ((pppppppcVar26 == (code *******)0x1) &&
                      (((uint)pppppppcVar6[1] & 0x200) != 0)) {
                FUN_0001a53c(appppppcStack_2bc);
                pppppppcVar43 = pppppppcStack_300;
              }
              else {
                pppppppcVar25 = appppppcStack_2bc;
                if ((int)pppppppcVar31[0x17] < 2) {
                  pppppppcVar37 = pppppppcVar31 + 0x18;
                  pppppppcVar29 = appppppcStack_2bc + 8;
                  uVar21 = 0;
                  do {
                    ppppppcVar4 = *pppppppcVar37;
                    pppppppcVar36 = (code *******)*pppppppcVar25;
                    *pppppppcVar25 = (code ******)(~(uint)ppppppcVar4 & (uint)pppppppcVar36);
                    uVar21 = uVar21 | ~(uint)ppppppcVar4 & (uint)pppppppcVar36;
                    pppppppcVar25 = pppppppcVar25 + 1;
                    pppppppcVar37 = pppppppcVar37 + 1;
                  } while (pppppppcVar25 != pppppppcVar29);
                }
                else {
                  pppppppcVar36 = pppppppcVar31 + 0x18;
                  ppppppcVar4 = pppppppcVar31[0xf];
                  uVar21 = 0;
                  do {
                    pppppppcVar29 = (code *******)*pppppppcVar25;
                    ppppppcVar41 = (code ******)
                                   (~((uint)*pppppppcVar36 & (uint)*ppppppcVar4) &
                                   (uint)pppppppcVar29);
                    *pppppppcVar25 = ppppppcVar41;
                    uVar21 = uVar21 | (uint)ppppppcVar41;
                    pppppppcVar25 = pppppppcVar25 + 1;
                    pppppppcVar36 = pppppppcVar36 + 1;
                    ppppppcVar4 = ppppppcVar4 + 1;
                  } while (pppppppcVar25 != appppppcStack_2bc + 8);
                }
                if (uVar21 != 0) goto LAB_00027078;
              }
            }
            else if ((pppppppcVar26 == (code *******)0x1) && (((uint)pppppppcVar6[1] & 0x200) == 0))
            {
              FUN_0001a53c(appppppcStack_2bc);
              pppppppcVar43 = pppppppcStack_300;
            }
            else {
              ppppppcVar4 = (code ******)appppppcStack_2bc;
              if ((int)pppppppcVar31[0x17] < 2) {
                pppppppcVar25 = appppppcStack_2bc;
                pppppppcVar37 = pppppppcVar31 + 0x18;
                pppppppcVar29 = appppppcStack_2bc + 8;
                uVar21 = 0;
                do {
                  ppppppcVar4 = *pppppppcVar25;
                  pppppppcVar36 = (code *******)*pppppppcVar37;
                  *pppppppcVar25 = (code ******)((uint)ppppppcVar4 & (uint)pppppppcVar36);
                  uVar21 = uVar21 | (uint)ppppppcVar4 & (uint)pppppppcVar36;
                  pppppppcVar25 = pppppppcVar25 + 1;
                  pppppppcVar37 = pppppppcVar37 + 1;
                } while (pppppppcVar25 != pppppppcVar29);
              }
              else {
                pppppppcVar36 = pppppppcVar31 + 0x18;
                ppppppcVar41 = pppppppcVar31[0xf];
                uVar21 = 0;
                do {
                  pppppppcVar29 = (code *******)*ppppppcVar4;
                  pppppcVar5 = (code *****)
                               ((~(uint)*ppppppcVar41 | (uint)*pppppppcVar36) & (uint)pppppppcVar29)
                  ;
                  *ppppppcVar4 = pppppcVar5;
                  uVar21 = uVar21 | (uint)pppppcVar5;
                  ppppppcVar4 = ppppppcVar4 + 1;
                  pppppppcVar36 = pppppppcVar36 + 1;
                  ppppppcVar41 = ppppppcVar41 + 1;
                } while ((code *******)ppppppcVar4 != appppppcStack_2bc + 8);
              }
              if (uVar21 != 0) goto LAB_0002700c;
            }
          }
          else {
            FUN_0001a53c(appppppcStack_2bc);
            pppppppcVar43 = pppppppcStack_300;
          }
        }
        else {
          if (pppppppcVar26 == (code *******)0x3) {
            FUN_00018610(appppppcStack_2bc,*pppppppcVar6);
            pppppppcVar43 = pppppppcStack_300;
            goto LAB_00026f88;
          }
          if (pppppppcVar26 == (code *******)&DAT_00000005) {
            if ((int)pppppppcVar31[0x17] < 2) {
              appppppcStack_2bc[0] = (code ******)0xffffffff;
              appppppcStack_2bc[1] = (code ******)0xffffffff;
              appppppcStack_2bc[2] = (code ******)0xffffffff;
              appppppcStack_2bc[3] = (code ******)0xffffffff;
              appppppcStack_2bc[4] = (code ******)0xffffffff;
              appppppcStack_2bc[5] = (code ******)0xffffffff;
              appppppcStack_2bc[6] = (code ******)0xffffffff;
              appppppcStack_2bc[7] = (code ******)0xffffffff;
            }
            else {
              FUN_00018610(appppppcStack_2bc,pppppppcVar31[0xf]);
              pppppppcVar43 = pppppppcStack_300;
            }
            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {
              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffbff);
            }
            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {
              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);
            }
            goto LAB_00026f88;
          }
          if (pppppppcVar26 == (code *******)0x7) {
            appppppcStack_2bc[0] = (code ******)0xffffffff;
            appppppcStack_2bc[1] = (code ******)0xffffffff;
            appppppcStack_2bc[2] = (code ******)0xffffffff;
            appppppcStack_2bc[3] = (code ******)0xffffffff;
            if (((uint)pppppppcVar31[0x20] & 0x40) == 0) {
              appppppcStack_2bc[0] = (code ******)0xfffffbff;
            }
            if (((uint)pppppppcVar31[0x20] & 0x80) != 0) {
              appppppcStack_2bc[0] = (code ******)((uint)appppppcStack_2bc[0] & 0xfffffffe);
            }
            goto LAB_00026f88;
          }
        }
LAB_00027478:
        pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);
      } while ((int)pppppppcStack_2f4 < (int)pppppppcVar38[2]);
      pppppppcVar25 = (code *******)((int)pppppppcVar27 + 1);
      if (0 < (int)pppppppcVar27) {
        pppppppcStack_2f8 = (code *******)FUN_0001a1a8(&ppppppcStack_2c8);
        pppppppcStack_2cc = pppppppcStack_2f8;
        if ((pppppppcStack_2f8 == (code *******)0x0) && (pppppppcVar27 < (code *******)0x155551ab))
        {
          iStack_2d4 = (int)pppppppcVar27 * 0xc;
          pppppppcStack_2f0 = (code *******)(*(code *)pppppppcStack_300[-0x1f87])(iStack_2d4);
          if (pppppppcStack_2f0 != (code *******)0x0) {
            pppppppcStack_2e4 = pppppppcStack_2f0 + (int)pppppppcVar27;
            pppppppcStack_2e0 = pppppppcStack_2e4 + (int)pppppppcVar27;
            FUN_0001a53c(appppppcStack_27c);
            pppppppcVar42 = pppppppcStack_2ec + 1;
            pppppppcStack_2f4 = pppppppcStack_2f8;
            ppppppcStack_2d8 = (code ******)0x0;
            pppppppcVar28 = &ppppppcStack_2c8;
            pppppppcVar26 = (code *******)(pppppppcStack_300[-0x1fba] + -0x15d4);
            ppppppcStack_2e8 = pppppppcStack_300[-0x1fba] + -0xa1a;
            ppppppcStack_2dc = pppppppcStack_300[-0x1fba] + -0x1e7c;
            do {
              uStack_2c4 = 0;
              if (0 < (int)*pppppppcVar42) {
                pppppppcVar6 = (code *******)0xffffffff;
                pppppppcVar43 = pppppppcStack_2f8;
                do {
                  if (pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] !=
                      (code *****)0xffffffff) {
                    pppppppcVar25 =
                         (code *******)
                         (pppppppcVar31[6] +
                         (int)pppppppcVar31[3][(int)pppppppcVar42[1][(int)pppppppcVar43]] * 3);
                    pppppppcStack_2cc = (code *******)(*(code *)pppppppcVar26)(pppppppcVar28);
                    if (pppppppcStack_2cc != (code *******)0x0) goto LAB_00027794;
                  }
                  pppppppcVar43 = (code *******)((int)pppppppcVar43 + 1);
                  pppppppcVar29 = (code *******)0x0;
                } while ((int)pppppppcVar43 < (int)*pppppppcVar42);
              }
              pppppppcVar29 = (code *******)0x0;
              pppppppcVar25 = pppppppcVar31;
              pppppppcVar36 = pppppppcVar28;
              ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);
              pppppppcVar43 = pppppppcStack_2f4;
              pppppppcVar6 = pppppppcStack_2f0 + (int)pppppppcStack_2f4;
              *pppppppcVar6 = ppppppcVar4;
              if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {
                ppppppcVar4 = pppppppcStack_300[-0x1f6c];
                goto LAB_00027798;
              }
              if (((uint)ppppppcVar4[0xd] & 0x1000000) == 0) {
                pppppppcStack_2e4[(int)pppppppcStack_2f4] = ppppppcVar4;
                pppppppcStack_2e0[(int)pppppppcStack_2f4] = ppppppcVar4;
              }
              else {
                pppppppcVar29 = (code *******)0x1;
                pppppppcVar25 = pppppppcVar31;
                pppppppcVar36 = pppppppcVar28;
                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);
                pppppppcStack_2e4[(int)pppppppcVar43] = ppppppcVar4;
                if ((ppppppcVar4 == (code ******)0x0) && (pppppppcStack_2cc != (code *******)0x0)) {
                  ppppppcVar4 = pppppppcStack_300[-0x1f6c];
                  goto LAB_00027798;
                }
                if ((ppppppcVar4 != *pppppppcVar6) && (1 < (int)pppppppcVar31[0x17])) {
                  ppppppcStack_2d8 = (code ******)0x1;
                }
                pppppppcVar29 = (code *******)0x2;
                pppppppcVar25 = pppppppcVar31;
                pppppppcVar36 = pppppppcVar28;
                ppppppcVar4 = (code ******)(*(code *)ppppppcStack_2e8)(&pppppppcStack_2cc);
                pppppppcStack_2e0[(int)pppppppcVar43] = ppppppcVar4;
                if ((ppppppcVar4 == (code ******)0x0) &&
                   (pppppppcVar6 = pppppppcVar43, pppppppcStack_2cc != (code *******)0x0))
                goto LAB_00027794;
              }
              pppppppcVar32 = pppppppcStack_2ec;
              pppppppcVar6 = (code *******)((int)pppppppcVar43 * 0x20);
              (*(code *)ppppppcStack_2dc)
                        (appppppcStack_27c,pppppppcStack_2ec + 0x300 + (int)pppppppcVar43 * 8);
              pppppppcStack_2f4 = (code *******)((int)pppppppcStack_2f4 + 1);
              pppppppcVar42 = pppppppcVar42 + 3;
            } while (pppppppcStack_2f4 != pppppppcVar27);
            pppppppcVar25 = (code *******)0x100;
            if (ppppppcStack_2d8 == (code ******)0x0) {
              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);
              pppppppcVar38[0xb] = (code ******)pppppppcVar28;
              if (pppppppcVar28 == (code *******)0x0) {
LAB_00027794:
                ppppppcVar4 = pppppppcStack_300[-0x1f6c];
                pppppppcVar43 = pppppppcVar6;
LAB_00027798:
                (*(code *)ppppppcVar4)(pppppppcStack_2f0);
                pppppppcVar6 = pppppppcVar43;
                goto LAB_000277a4;
              }
              ppppppcVar4 = (code ******)appppppcStack_27c;
              pppppppcVar31 = pppppppcVar31 + 0x18;
              pppppppcVar25 = (code *******)0x0;
              pppppppcVar43 = pppppppcVar32;
              do {
                pppppcVar5 = *ppppppcVar4;
                pppppppcVar29 = pppppppcVar25;
                if (pppppcVar5 != (code *****)0x0) {
                  uVar21 = 1;
                  do {
                    if (((uint)pppppcVar5 & 1) != 0) {
                      pppppppcVar36 = pppppppcStack_2f8;
                      pppppppcVar34 = pppppppcVar43;
                      if ((uVar21 & (uint)pppppppcVar43[0x300]) == 0) {
                        do {
                          pppppppcVar36 = (code *******)((int)pppppppcVar36 + 1);
                          pppppppcVar37 = pppppppcVar34 + 0x308;
                          pppppppcVar34 = pppppppcVar34 + 8;
                        } while ((uVar21 & (uint)*pppppppcVar37) == 0);
                      }
                      else {
                        pppppppcVar36 = (code *******)0x0;
                      }
                      if ((uVar21 & (uint)*pppppppcVar31) == 0) {
                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2f0[(int)pppppppcVar36];
                        pppppppcVar36 = pppppppcStack_2f0;
                      }
                      else {
                        pppppppcVar28[(int)pppppppcVar29] = pppppppcStack_2e4[(int)pppppppcVar36];
                        pppppppcVar36 = pppppppcStack_2e4;
                      }
                    }
                    uVar21 = uVar21 << 1;
                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);
                    pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
                  } while (pppppcVar5 != (code *****)0x0);
                }
                ppppppcVar4 = ppppppcVar4 + 1;
                pppppppcVar25 = pppppppcVar25 + 8;
                pppppppcVar31 = pppppppcVar31 + 1;
                pppppppcVar43 = pppppppcVar43 + 1;
              } while (pppppppcVar25 != (code *******)0x100);
            }
            else {
              pppppppcVar25 = (code *******)0x200;
              pppppppcVar28 = (code *******)(*(code *)pppppppcStack_300[-0x1fae])(4);
              pppppppcVar38[0xc] = (code ******)pppppppcVar28;
              if (pppppppcVar28 == (code *******)0x0) goto LAB_00027794;
              ppppppcVar4 = (code ******)appppppcStack_27c;
              pppppppcVar43 = pppppppcVar32;
              pppppppcVar25 = pppppppcVar28;
              do {
                pppppcVar5 = *ppppppcVar4;
                if (pppppcVar5 != (code *****)0x0) {
                  uVar21 = 1;
                  pppppppcVar29 = pppppppcVar25;
                  do {
                    if (((uint)pppppcVar5 & 1) != 0) {
                      pppppppcVar34 = (code *******)0x0;
                      ppppppcVar41 = pppppppcVar43[0x300];
                      pppppppcVar37 = pppppppcVar43;
                      pppppppcVar2 = pppppppcStack_2f8;
                      while ((uVar21 & (uint)ppppppcVar41) == 0) {
                        pppppppcVar34 = (code *******)((int)pppppppcVar2 + 1);
                        pppppppcVar36 = pppppppcVar37 + 8;
                        ppppppcVar41 = pppppppcVar37[0x308];
                        pppppppcVar37 = pppppppcVar36;
                        pppppppcVar2 = pppppppcVar34;
                      }
                      *pppppppcVar29 = pppppppcStack_2f0[(int)pppppppcVar34];
                      pppppppcVar29[0x100] = pppppppcStack_2e4[(int)pppppppcVar34];
                    }
                    uVar21 = uVar21 << 1;
                    pppppcVar5 = (code *****)((uint)pppppcVar5 >> 1);
                    pppppppcVar29 = pppppppcVar29 + 1;
                  } while (pppppcVar5 != (code *****)0x0);
                }
                ppppppcVar4 = ppppppcVar4 + 1;
                pppppppcVar25 = pppppppcVar25 + 0x20;
                pppppppcVar43 = pppppppcVar43 + 1;
              } while (pppppppcVar28 + 0x100 != pppppppcVar25);
            }
            pppppppcVar25 = (code *******)0xa;
            iVar40 = FUN_00018598(appppppcStack_27c);
            if (iVar40 != 0) {
              pppppppcVar43 = pppppppcStack_2ec + 0x300;
              pppppppcVar6 = (code *******)(pppppppcStack_300[-0x1fba] + -0x1e9a);
              do {
                pppppppcVar42 = pppppppcStack_2f8;
                pppppppcVar25 = (code *******)0xa;
                iVar40 = FUN_00018598(pppppppcVar43);
                if (iVar40 != 0) {
                  ppppppcVar4 = pppppppcStack_2e0[(int)pppppppcVar42];
                  pppppppcVar28[10] = ppppppcVar4;
                  if (ppppppcStack_2d8 != (code ******)0x0) {
                    pppppppcVar28[0x10a] = ppppppcVar4;
                  }
                  break;
                }
                pppppppcStack_2f8 = (code *******)((int)pppppppcStack_2f8 + 1);
                pppppppcVar43 = pppppppcVar43 + 8;
              } while (pppppppcStack_2f8 != pppppppcVar27);
            }
            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2f0);
            (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);
            pppppppcVar34 = (code *******)((int)pppppppcVar32 + iStack_2d4);
            do {
              (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);
              pppppppcVar32 = pppppppcVar32 + 3;
            } while (pppppppcVar34 != pppppppcVar32);
            (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);
            pppppppcVar43 = (code *******)0x1;
            goto LAB_00027804;
          }
        }
LAB_000277a4:
        (*(code *)pppppppcStack_300[-0x1f6c])(uStack_2c0);
        pppppppcVar34 = pppppppcStack_2ec + (int)pppppppcVar27 * 3;
        pppppppcVar32 = pppppppcStack_2ec;
        do {
          (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcVar32[2]);
          pppppppcVar32 = pppppppcVar32 + 3;
        } while (pppppppcVar32 != pppppppcVar34);
        (*(code *)pppppppcStack_300[-0x1f6c])(pppppppcStack_2ec);
        pppppppcVar43 = (code *******)0x0;
        goto LAB_00027804;
      }
    }
LAB_00027610:
    (*(code *)pppppppcVar43[-0x1f6c])(pppppppcStack_2ec);
    pppppppcVar25 = (code *******)0x100;
    if (pppppppcVar27 == (code *******)0x0) {
      ppppppcVar4 = (code ******)(*(code *)pppppppcStack_300[-0x1fae])(4);
      pppppppcVar38[0xb] = ppppppcVar4;
      pppppppcVar43 = (code *******)(uint)(ppppppcVar4 != (code ******)0x0);
    }
    else {
      pppppppcVar43 = (code *******)0x0;
    }
  }
LAB_00027804:
  if (pppppppcStack_25c == (code *******)*pppppppcStack_300[-0x1f6f]) {
    return pppppppcVar43;
  }
  ppppppcVar4 = pppppppcStack_300[-0x1f77];
  pcVar46 = FUN_00027cb0;
  pppppppcVar22 = pppppppcStack_25c;
  (*(code *)ppppppcVar4)();
  pppppppcVar2 = pppppppcStack_2f4;
  pppppppcVar37 = pppppppcStack_300;
  ppppcStack_33c = *ppppppcVar4[0x5999];
  pppppppcVar44 = (code *******)*pppppppcVar22;
  pppppppcVar43 = (code *******)0x0;
  pppppppcStack_338 = pppppppcVar32;
  pppppppcStack_334 = pppppppcVar34;
  pppppppcStack_330 = pppppppcVar27;
  pppppppcStack_32c = pppppppcVar6;
  pppppppcStack_328 = pppppppcVar28;
  pppppppcStack_324 = pppppppcVar42;
  pppppppcStack_320 = pppppppcVar31;
  pppppppcStack_31c = pppppppcVar26;
  pppppppcStack_318 = pppppppcVar38;
  pcStack_314 = pcVar46;
  pppppppcStack_308 = pppppppcVar36;
  (*(code *)ppppppcVar4[0x5978])(&pppppppcStack_3c4,0,0x88);
  ppppppcStack_458 = pppppppcVar22[4];
  if (ppppppcStack_458 != (code ******)0x0) {
    if (((byte)*(code *)(pppppppcVar22 + 7) & 0x10) == 0) {
      ppppppcStack_458 = (code ******)0x0;
    }
    else if (pppppppcVar29 == pppppppcVar37) {
      ppppppcStack_458 = (code ******)0x0;
    }
    else if ((char)*(code *)(pppppppcVar22 + 7) < '\0') {
      ppppppcStack_458 = (code ******)0x0;
    }
  }
  if (pppppppcVar22[6] < pppppppcStack_2f8) {
    pcStack_428 = (code *)((int)pppppppcStack_2f8 + (-1 - (int)pppppppcVar22[6]));
  }
  else {
    pcStack_428 = (code *)0x0;
  }
  pppppppcStack_370 = pppppppcVar44;
  if (pppppppcVar22[2] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  if (pppppppcVar44[9] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  if (pppppppcVar44[10] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  if (pppppppcVar44[0xb] == (code ******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  pppppppcVar43 = (code *******)pppppppcVar44[0xc];
  if (pppppppcVar43 == (code *******)0x0) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  pppppppcVar26 = pppppppcVar37;
  if ((((pppppppcVar44[9][2] == (code *****)0x0) && (pppppppcVar44[10][2] == (code *****)0x0)) &&
      ((pppppppcVar44[0xb][2] == (code *****)0x0 || (((uint)pppppppcVar22[7] & 0x1000000) == 0))))
     && ((pppppppcVar26 = pppppppcVar29, pppppppcVar29 != (code *******)0x0 &&
         (pppppppcVar29 = pppppppcVar37, pppppppcVar26 = pppppppcVar37,
         pppppppcVar37 != (code *******)0x0)))) {
    pppppppcStack_460 = (code *******)0x1;
    goto LAB_00028eb4;
  }
  pppppppcVar6 = (code *******)((int)pppppppcStack_2f8 - (int)pcStack_428);
  if (pppppppcVar6 == (code *******)0x0) {
    bVar19 = pppppppcVar44[0x13] != (code ******)0x0;
  }
  else {
    bVar19 = true;
  }
  ppppppcVar41 = pppppppcVar22[5];
  bStack_37c = (byte)((uint)((int)pppppppcVar22[3] << 9) >> 0x1f);
  pppppppcStack_374 = (code *******)pppppppcVar44[0x17];
  pppppppcVar36 = (code *******)((int)pppppppcVar44[2] + 1U);
  if ((int)((int)pppppppcVar44[2] + 1U) < (int)pppppppcStack_374) {
    pppppppcVar36 = pppppppcStack_374;
  }
  pppppppcVar38 = (code *******)(uint)((int)pppppppcStack_308 + 1 < (int)pppppppcVar36);
  pppppppcStack_394 = pppppppcStack_308;
  pppppppcStack_398 = pppppppcStack_308;
  bStack_379 = bStack_37c;
  if (ppppppcVar41 != (code ******)0x0) {
    bStack_379 = 1;
  }
  bStack_37b = (byte)((uint)((int)pppppppcVar44[0x16] << 2) >> 0x1f);
  bStack_37a = (byte)((uint)((int)pppppppcVar44[0x16] << 3) >> 0x1f);
  pppppppcStack_38c = pppppppcStack_308;
  pppppppcStack_390 = pppppppcStack_308;
  pppppppcVar43 = (code *******)((int)pppppppcStack_308 + 1);
  if (pppppppcVar38 == (code *******)0x0) {
    pppppppcVar43 = pppppppcVar36;
  }
  pppppppcStack_3c4 = pppppppcVar25;
  ppppppcStack_384 = ppppppcVar41;
  pppppppcStack_460 = (code *******)FUN_00019684(&pppppppcStack_3c4,pppppppcVar43);
  if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;
  pppppppcStack_380 = pppppppcVar44 + 0x18;
  bStack_376 = (byte)((uint)((int)pppppppcVar44[0x16] << 4) >> 0x1f);
  pppppppcVar36 = (code *******)0x0;
  pppppppcStack_3a8 = pppppppcVar36;
  if ((bStack_379 == 0) && (pppppppcStack_3c0 = pppppppcVar25, (int)pppppppcVar44[0x17] < 2)) {
    pppppppcStack_3a8 = pppppppcStack_308;
  }
  pppppppcStack_38c = pppppppcStack_2fc;
  pppppppcStack_390 = pppppppcStack_2fc;
  bStack_377 = (byte)((uint)((int)pppppppcVar22[7] << 7) >> 0x1f);
  ppppppcVar39 = pppppppcVar44[0x13];
  uVar21 = (int)ppppppcVar39 * 2;
  pppppppcStack_36c = pppppppcStack_2f0;
  pppppppcStack_368 = (code *******)0xffffffff;
  pppppppcStack_3a4 = pppppppcStack_3a8;
  if ((int)uVar21 < 1) {
LAB_00029090:
    iStack_34c = 1;
    uStack_354 = uVar21;
    uStack_344 = uVar21;
    if ((pppppppcVar6 < (code *******)0x2) && (((uint)pppppppcVar44[0x16] & 0x40000000) == 0)) {
      pppppppcStack_360 = (code *******)0x0;
LAB_000290e0:
      uStack_388 = 6;
      if (((uint)pppppppcStack_2f0 & 1) != 0) {
        uStack_388 = 4;
      }
      iVar40 = 1;
      pppppppcVar31 = pppppppcVar29;
      if ((int)pppppppcVar26 < (int)pppppppcVar29) {
        iVar40 = -1;
        pppppppcVar31 = pppppppcVar26;
      }
      pppppppcVar28 = pppppppcVar26;
      if ((int)pppppppcVar26 <= (int)pppppppcVar29) {
        pppppppcVar28 = pppppppcVar29;
      }
      ppppppcVar39 = pppppppcVar44[0x17];
      uVar21 = 8;
      if (ppppppcStack_458 != (code ******)0x0) {
        if (ppppppcVar39 == (code ******)0x1) {
          pppppppcVar36 = (code *******)0x4;
        }
        else if ((-1 < (int)pppppppcVar22[3] << 9) && (ppppppcVar41 == (code ******)0x0)) {
          pppppppcVar36 = (code *******)0x4;
        }
        pppppppcVar43 = (code *******)0x0;
        if ((int)pppppppcVar29 <= (int)pppppppcVar26) {
          pppppppcVar43 = (code *******)0x2;
        }
        uVar21 = (uint)(ppppppcVar41 != (code ******)0x0) | (uint)pppppppcVar36 |
                 (uint)pppppppcVar43;
      }
      pppppppcStack_3ec = pppppppcVar29;
      if ((int)pppppppcVar29 < (int)pppppppcVar31) {
        pppppppcStack_460 = (code *******)0x1;
      }
      else if ((int)pppppppcVar28 < (int)pppppppcVar29) {
        pppppppcStack_460 = (code *******)0x1;
      }
      else {
        pppppppcVar36 = (code *******)&pppppppcStack_3ec;
        if ((int)pppppppcVar26 < (int)pppppppcVar29) {
          pppppppcVar36 = (code *******)0x0;
        }
        pppppcVar5 = ppppppcVar4[0x594e];
        pppppcVar9 = ppppppcVar4[0x5916];
LAB_000291e4:
        pppppppcVar26 = pppppppcStack_308;
        if (uVar21 - 4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x000291fc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          pppppppcVar26 =
               (code *******)
               (*(code *)((int)ppppppcVar4 + (int)(pppppcVar9[uVar21 - 0xd05] + 0x7908)))();
          return pppppppcVar26;
        }
        while( true ) {
          pppppppcVar27 = pppppppcStack_3ec;
          pppppppcVar42 = (code *******)((int)pppppppcStack_3ec - iStack_3ac);
          pppppppcVar38 = pppppppcStack_2f0;
          if (pppppppcStack_3a4 <= pppppppcVar42) {
            pppppppcVar43 = pppppppcStack_3ec;
            pppppppcStack_460 =
                 (code *******)
                 (*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);
            if (pppppppcStack_460 != (code *******)0x0) goto LAB_00028e84;
            pppppppcVar42 = (code *******)((int)pppppppcVar27 - iStack_3ac);
          }
          if ((int)pppppppcVar27 < (int)pppppppcVar26) {
            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcVar42);
          }
          else {
            uVar10 = 0;
          }
          pppppppcVar27 = (code *******)((int)pppppppcVar27 + iVar40);
          if (*(char *)((int)ppppppcStack_458 + uVar10) != '\0') break;
          pppppppcStack_3ec = pppppppcVar27;
          if ((int)pppppppcVar27 < (int)pppppppcVar31) {
            pppppppcStack_460 = (code *******)0x1;
            goto LAB_00028e84;
          }
          if ((int)pppppppcVar28 < (int)pppppppcVar27) {
            pppppppcStack_460 = (code *******)0x1;
            goto LAB_00028e84;
          }
        }
        while( true ) {
          pppppppcVar43 = pppppppcStack_3ec;
          pppppppcVar38 = pppppppcStack_2f0;
          pppppppcVar42 =
               (code *******)(*(code *)(pppppcVar5 + -0x110))(&pppppppcStack_3c4,pppppppcStack_3ec);
          pppppppcVar27 = pppppppcStack_370;
          pppppppcVar26 = pppppppcStack_39c;
          pppppppcStack_460 = pppppppcVar42;
          if (pppppppcVar42 != (code *******)0x0) goto LAB_00028e84;
          if (((ppppppcVar39 != (code ******)0x1) && (pppppppcStack_3a8 != (code *******)0x0)) &&
             (*piStack_3bc == -1)) goto LAB_000291bc;
          iStack_34c = 0;
          uStack_358 = 0;
          pppppppcStack_35c = (code *******)0x0;
          pppppppcStack_448 = pppppppcStack_39c;
          pppppppcStack_3e8 = (code *******)0x0;
          pppppppcVar32 = (code *******)pppppppcStack_370[9];
          pppppppcVar38 = pppppppcStack_36c;
          if (((uint)pppppppcVar32[0xd] & 0x1000000) == 0) break;
          pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);
          uVar10 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);
          if ((uVar10 & 1) == 0) {
            if (uVar10 == 0) break;
            if ((uVar10 & 6) == 6) {
              pppppppcVar32 = (code *******)pppppppcVar27[0xc];
              goto LAB_000283bc;
            }
            if ((uVar10 & 2) != 0) {
              pppppppcVar32 = (code *******)pppppppcVar27[0xb];
              goto LAB_000283bc;
            }
            if ((uVar10 & 4) == 0) break;
            pppppppcVar38 = (code *******)pppppppcVar32[10];
            pppppppcVar43 = pppppppcVar27;
            pppppppcVar32 =
                 (code *******)FUN_0001d798(&pppppppcStack_3e8,pppppppcVar27,pppppppcVar38,uVar10);
            if (pppppppcVar32 != (code *******)0x0) break;
            if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;
            pppppcVar30 = ppppppcVar4[0x5916];
          }
          else {
            pppppppcVar32 = (code *******)pppppppcVar27[10];
LAB_000283bc:
            pppppcVar30 = ppppppcVar4[0x5916];
            if (pppppppcVar32 != (code *******)0x0) break;
          }
          pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);
          pppppppcStack_3ec =
               (code *******)
               (*(code *)ppppppcVar4[0x595c])
                         (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x431,pppppcVar30 + -0xcf0);
          if (pppppppcStack_3ec == pppppppcVar28) {
            if ((int)pppppppcStack_3ec < (int)pppppppcStack_308) {
              uVar10 = (uint)(byte)*(code *)((int)pppppppcVar25 + (int)pppppppcStack_3ec);
            }
            else {
              uVar10 = 0;
            }
            if (ppppppcVar41 != (code ******)0x0) {
              uVar10 = (uint)*(byte *)((int)ppppppcVar41 + uVar10);
            }
            if (*(char *)((int)ppppppcStack_458 + uVar10) == '\0') {
              pppppppcStack_460 = (code *******)0x1;
              pppppppcVar38 = pppppppcStack_2f0;
              goto LAB_00028e84;
            }
          }
        }
        bVar1 = pppppppcVar36 != (code *******)0x0;
        if ((pppppppcStack_360 == (code *******)0x0) ||
           (pppppppcStack_360[(int)pppppppcVar26] = (code ******)pppppppcVar32,
           pppppppcVar27[0x13] == (code ******)0x0)) {
LAB_000283f0:
          if ((int)pppppppcVar32[0xd] << 4 < 0) {
            if ((((uint)pppppppcVar32[0xd] & 0x1000000) == 0) ||
               (pppppppcVar43 = pppppppcVar32, pppppppcVar38 = pppppppcVar26,
               iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar32), iVar17 != 0)) {
              pppppppcVar27 = pppppppcVar26;
              if (!bVar19) goto LAB_0002945c;
              pppppppcVar27 = (code *******)0x1;
            }
            else {
              pppppppcVar26 = (code *******)0xffffffff;
              pppppppcVar27 = (code *******)0x0;
            }
          }
          else {
            pppppppcVar26 = (code *******)0xffffffff;
            pppppppcVar27 = (code *******)0x0;
          }
          pppppcVar30 = ppppppcVar4[0x594e];
          pppppcVar11 = ppppppcVar4[0x594e];
          pppppcVar12 = ppppppcVar4[0x594e];
          pppppppcStack_454 = pppppppcVar36;
          while( true ) {
            uVar49 = CONCAT44(pppppppcStack_3a8,pppppppcStack_394);
            pppppppcVar34 = (code *******)((int)pppppppcStack_39c + 1);
            pppppppcVar43 = pppppppcStack_39c;
            if ((int)pppppppcStack_38c <= (int)pppppppcStack_39c) break;
            if (((int)uStack_3a0 <= (int)pppppppcVar34) &&
               ((int)uStack_3a0 < (int)pppppppcStack_394)) goto LAB_00028534;
            if ((int)pppppppcStack_3a8 <= (int)pppppppcVar34) {
              while ((int)((ulonglong)uVar49 >> 0x20) < (int)uVar49) {
LAB_00028534:
                pppppppcVar43 = (code *******)((int)pppppppcVar43 + 2);
                pppppppcStack_3e8 =
                     (code *******)
                     (*(code *)(pppppcVar30 + -0x11ec))(&pppppppcStack_3c4,pppppppcVar43);
                if (pppppppcStack_3e8 == (code *******)0x0) break;
                if (pppppppcStack_3e8 == (code *******)0xc) goto LAB_00028fb4;
                pppppppcVar38 = (code *******)0x468;
                pppppppcVar43 = (code *******)(ppppppcVar4[0x5916] + -0xc50);
                uVar49 = (*(code *)ppppppcVar4[0x595c])
                                   (ppppppcVar4[0x5916] + -0xc2e,pppppppcVar43,0x468,
                                    ppppppcVar4[0x5916] + -0xcf0);
                pppppppcVar27 = pppppppcVar44;
              }
            }
            pppppppcVar29 = pppppppcStack_370;
            if ((int)pppppppcVar32[0xd] << 5 < 0) {
              if (0 < (int)pppppppcVar32[2]) {
                pppppcVar35 = ppppppcVar4[0x594e];
                pppppcVar13 = ppppppcVar4[0x594e] + -0x1157;
                iVar17 = 0;
                do {
                  pppppppcVar37 = (code *******)pppppppcVar32[3][iVar17];
                  ppppppcVar18 = *pppppppcVar29;
                  pppppcVar15 = ppppppcVar18[(int)pppppppcVar37 * 2 + 1];
                  if (((uint)pppppcVar15 & 0x800) != 0) {
                    if (((uint)pppppcVar15 & 0xffc000) != 0) {
                      pppppppcVar43 = pppppppcStack_39c;
                      uVar16 = (*(code *)pppppcVar13)
                                         (&pppppppcStack_3c4,pppppppcStack_39c,pppppppcStack_36c);
                      uVar10 = (uint)((int)ppppppcVar18[(int)pppppppcVar37 * 2 + 1] << 8) >> 0x16;
                      if ((uVar10 & 4) == 0) {
                        uVar23 = uVar16 & 1;
                        if ((uVar10 & 8) != 0) goto joined_r0x000285e0;
                      }
                      else {
                        uVar23 = uVar10 & 8;
                        if ((uVar16 & 1) == 0) goto LAB_00028744;
joined_r0x000285e0:
                        if (uVar23 != 0) goto LAB_00028744;
                      }
                      if ((((uVar10 & 0x20) != 0) && ((uVar16 & 2) == 0)) ||
                         (((uVar10 & 0x80) != 0 && ((uVar16 & 8) == 0)))) goto LAB_00028744;
                    }
                    pppppppcVar38 = (code *******)&pppppppcStack_3c4;
                    pppppppcVar43 = pppppppcVar37;
                    iVar14 = (*(code *)(pppppcVar12 + -0x218))
                                       (pppppppcVar29,pppppppcVar37,pppppppcVar38,pppppppcStack_39c)
                    ;
                    if (iVar14 != 0) {
                      pppppppcVar33 = (code *******)((int)pppppppcStack_39c + iVar14);
                      if (iVar14 <= iStack_34c) {
                        iVar14 = iStack_34c;
                      }
                      pppppppcVar43 = pppppppcVar33;
                      iStack_34c = iVar14;
                      pppppppcStack_3e4 =
                           (code *******)
                           (*(code *)(pppppcVar35 + -0x1192))(&pppppppcStack_3c4,pppppppcVar33);
                      pppppppcVar3 = pppppppcStack_3e4;
                      if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;
                      pppppppcVar38 =
                           (code *******)
                           (pppppppcVar29[6] + (int)pppppppcVar29[3][(int)pppppppcVar37] * 3);
                      pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;
                      ppppppcVar18 = *pppppppcVar37;
                      if (ppppppcVar18 == (code ******)0x0) {
                        pppppppcStack_3e0 = (code *******)*pppppppcVar38;
                        pppppppcStack_3dc = (code *******)pppppppcVar38[1];
                        ppppppcStack_3d8 = pppppppcVar38[2];
                        uVar48 = (*(code *)pppppcVar13)
                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),
                                            pppppppcStack_36c);
                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;
                        pppppppcVar43 = pppppppcVar29;
                        ppppppcVar18 = (code ******)
                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,
                                                    uVar48);
                        *pppppppcVar37 = ppppppcVar18;
                      }
                      else {
                        pppppppcVar43 = (code *******)ppppppcVar18[10];
                        pppppppcStack_3e4 =
                             (code *******)FUN_0001ae50(&pppppppcStack_3e0,pppppppcVar43);
                        pppppppcVar3 = pppppppcStack_3e4;
                        if (pppppppcStack_3e4 != (code *******)0x0) goto LAB_000294e4;
                        uVar48 = (*(code *)pppppcVar13)
                                           (&pppppppcStack_3c4,(code *)((int)pppppppcVar33 + -1),
                                            pppppppcStack_36c);
                        pppppppcVar37 = pppppppcStack_360 + (int)pppppppcVar33;
                        pppppppcVar38 = (code *******)&pppppppcStack_3e0;
                        pppppppcVar43 = pppppppcVar29;
                        ppppppcVar18 = (code ******)
                                       FUN_0001d798(&pppppppcStack_3e4,pppppppcVar29,pppppppcVar38,
                                                    uVar48);
                        *pppppppcVar37 = ppppppcVar18;
                        (*(code *)ppppppcVar4[0x599c])(ppppppcStack_3d8);
                      }
                      if ((pppppppcStack_360[(int)pppppppcVar33] == (code ******)0x0) &&
                         (pppppppcVar3 = pppppppcStack_3e4, pppppppcStack_3e4 != (code *******)0x0))
                      goto LAB_000294e4;
                    }
                  }
LAB_00028744:
                  iVar17 = iVar17 + 1;
                } while (iVar17 < (int)pppppppcVar32[2]);
              }
              pppppppcStack_3e8 = (code *******)0x0;
            }
            uVar10 = (uint)(byte)*(code *)((int)pppppppcStack_3c0 + (int)pppppppcStack_39c);
            pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);
            do {
              if (pppppppcVar32[0xb] != (code ******)0x0) {
                pppppppcVar38 = (code *******)pppppppcVar32[0xb][uVar10];
LAB_00028a40:
                pppppppcVar29 = pppppppcVar38;
                if (pppppppcStack_360 != (code *******)0x0) goto LAB_00028a4c;
                goto LAB_00028a6c;
              }
              ppppppcVar18 = pppppppcVar32[0xc];
              if (ppppppcVar18 != (code ******)0x0) {
                pppppppcVar43 = (code *******)((int)pppppppcStack_39c + -1);
                uVar16 = FUN_0001baa4(&pppppppcStack_3c4,pppppppcVar43);
                if ((uVar16 & 1) == 0) {
                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10];
                }
                else {
                  pppppppcVar38 = (code *******)ppppppcVar18[uVar10 + 0x100];
                }
                goto LAB_00028a40;
              }
              pppppppcVar43 = pppppppcVar32;
              pppppppcVar38 = pppppppcStack_36c;
              iVar17 = (*(code *)(pppppcVar11 + 0x1ba7))(pppppppcStack_370,pppppppcVar32);
            } while (iVar17 != 0);
            pppppppcStack_3e8 = (code *******)0xc;
            pppppppcVar3 = pppppppcStack_3e8;
LAB_000294e4:
            pppppppcStack_3e8 = pppppppcVar3;
            if (pppppppcStack_360 == (code *******)0x0) {
              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;
              break;
            }
            pppppppcVar38 = (code *******)0x0;
LAB_00028a4c:
            pppppppcVar43 = (code *******)&pppppppcStack_3c4;
            pppppppcVar29 = (code *******)MASKED(&pppppppcStack_3e8,pppppppcVar43);
LAB_00028a6c:
            if (pppppppcVar29 == (code *******)0x0) {
              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_00028fb4;
              if ((pppppppcStack_360 == (code *******)0x0) ||
                 ((pppppppcVar27 != (code *******)0x0 && (!bVar19)))) break;
              pppppcVar35 = ppppppcVar4[0x594e];
              do {
                pppppppcVar37 = pppppppcStack_360 + (int)pppppppcStack_39c;
                pppppppcVar29 = pppppppcStack_39c;
                do {
                  pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
                  pppppppcVar43 = pppppppcStack_35c;
                  if ((int)pppppppcStack_35c < (int)pppppppcVar29) goto LAB_00029448;
                  pppppppcStack_39c = (code *******)((int)pppppppcStack_39c + 1);
                  pppppppcVar37 = pppppppcVar37 + 1;
                } while (*pppppppcVar37 == (code ******)0x0);
                pppppppcVar38 = (code *******)0x0;
                pppppppcVar43 = (code *******)&pppppppcStack_3c4;
                pppppppcVar29 =
                     (code *******)
                     (*(code *)(pppppcVar35 + 0x13d7))(&pppppppcStack_3e8,&pppppppcStack_3c4);
                if (pppppppcStack_3e8 != (code *******)0x0) {
                  if (pppppppcVar29 == (code *******)0x0) goto LAB_00029448;
                  break;
                }
                pppppppcVar43 = pppppppcStack_35c;
              } while (pppppppcVar29 == (code *******)0x0);
            }
            pppppppcVar37 = pppppppcStack_448;
            if ((bVar1) && (pppppppcVar37 = pppppppcVar34, pppppppcVar32 != pppppppcVar29)) {
              bVar1 = false;
              pppppppcVar37 = pppppppcStack_448;
            }
            pppppppcStack_448 = pppppppcVar37;
            pppppppcVar32 = pppppppcVar29;
            if ((((uint)pppppppcVar29[0xd] & 0x8000000) != 0) &&
               ((((uint)pppppppcVar29[0xd] & 0x1000000) == 0 ||
                (pppppppcVar43 = pppppppcVar29, pppppppcVar38 = pppppppcStack_39c,
                iVar17 = FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar29), iVar17 != 0)))) {
              pppppppcVar27 = pppppppcStack_39c;
              if (!bVar19) goto LAB_0002945c;
              pppppppcVar27 = (code *******)0x1;
              pppppppcStack_454 = (code *******)0x0;
              pppppppcVar26 = pppppppcStack_39c;
            }
          }
LAB_00029448:
          pppppppcVar27 = pppppppcVar26;
          if (pppppppcStack_454 != (code *******)0x0) {
            *pppppppcStack_454 = (code ******)((int)pppppppcStack_448 + (int)*pppppppcStack_454);
          }
        }
        else {
          pppppppcVar34 = pppppppcVar32 + 1;
          pppppppcVar38 = (code *******)0x0;
          pppppppcVar43 = pppppppcVar34;
          pppppppcStack_3e8 = (code *******)FUN_0001a39c(&pppppppcStack_3c4,pppppppcVar34);
          pppppppcVar27 = pppppppcStack_3e8;
          if (pppppppcStack_3e8 == (code *******)0x0) {
            if (((uint)pppppppcVar32[0xd] & 0x2000000) == 0) {
              pppppppcVar43 = pppppppcVar34;
              bVar1 = false;
            }
            else {
              pppppppcStack_3e8 = (code *******)FUN_00024660(&pppppppcStack_3c4,pppppppcVar34);
              pppppppcVar43 = pppppppcVar34;
              pppppppcVar27 = pppppppcStack_3e8;
              if (pppppppcStack_3e8 != (code *******)0x0) goto LAB_0002945c;
              bVar1 = false;
            }
            goto LAB_000283f0;
          }
        }
LAB_0002945c:
        if (pppppppcVar27 == (code *******)0xffffffff) {
LAB_000291a4:
          FUN_0001e14c(&pppppppcStack_3c4);
LAB_000291bc:
          pppppppcStack_3ec = (code *******)((int)pppppppcStack_3ec + iVar40);
          if ((int)pppppppcVar31 <= (int)pppppppcStack_3ec) goto code_r0x000291d8;
          pppppppcStack_460 = (code *******)0x1;
          goto LAB_00028e84;
        }
        if (pppppppcVar27 == (code *******)&SUB_fffffffe) {
          pppppppcStack_460 = (code *******)0xc;
          goto LAB_00028e84;
        }
        pppppppcStack_368 = pppppppcVar27;
        if (((uint)pppppppcVar22[7] & 0x8000000) == 0) {
          if (pppppppcVar6 < (code *******)0x2) {
            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_000292a8;
            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];
            pppppppcVar38 = pppppppcVar27;
            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);
          }
          else {
            pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];
            pppppppcVar38 = pppppppcVar27;
            ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);
          }
          if (pppppppcVar6 < (code *******)0x2) {
LAB_0002930c:
            if (pppppppcVar44[0x13] == (code ******)0x0) goto LAB_00028be8;
          }
          else {
            cVar20 = *(code *)(pppppppcVar44 + 0x16);
LAB_000292c0:
            if (-1 < (char)cVar20) goto LAB_0002930c;
          }
          ppppppcVar18 = ppppppcStack_364;
          pppppppcVar26 = pppppppcStack_370;
          if (pppppppcVar27 < (code *******)0x3fffffff) {
            iVar17 = (int)((int)pppppppcVar27 + 1) * 4;
            pppppppcVar32 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);
            if (pppppppcVar32 == (code *******)0x0) {
LAB_0002923c:
              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);
              pppppppcStack_460 = (code *******)0xc;
            }
            else {
              pppppppcVar43 = (code *******)&pppppppcStack_3e0;
              if (pppppppcVar26[0x13] == (code ******)0x0) {
                pppppppcStack_3dc = (code *******)0x0;
                ppppppcStack_3d8 = ppppppcVar18;
                uStack_3d0 = 0;
                uStack_3cc = 0;
                uStack_3c8 = 0;
                pppppppcStack_3e0 = pppppppcVar32;
                pppppppcStack_3d4 = pppppppcVar27;
                pppppppcStack_460 = (code *******)FUN_00025af4(&pppppppcStack_3c4,pppppppcVar43);
                (*(code *)ppppppcVar4[0x599c])(uStack_3c8);
                if (pppppppcStack_460 == (code *******)0x0) {
                  if (*pppppppcVar32 == (code ******)0x0) {
                    pppppppcVar34 = (code *******)0x0;
LAB_00029210:
                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);
                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);
                    goto LAB_000291a4;
                  }
LAB_00028bc8:
                  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);
                  pppppppcStack_368 = pppppppcVar27;
                  ppppppcStack_364 = ppppppcVar18;
                  pppppppcStack_360 = pppppppcVar32;
                  goto LAB_00028be8;
                }
LAB_0002916c:
                pppppppcVar34 = (code *******)0x0;
              }
              else {
                pppppppcVar34 = (code *******)(*(code *)ppppppcVar4[0x5981])(iVar17);
                if (pppppppcVar34 == (code *******)0x0) goto LAB_0002923c;
                pppppcVar30 = ppppppcVar4[0x594e];
                pppppcVar11 = ppppppcVar4[0x594e];
                while( true ) {
                  pppppppcVar29 = (code *******)(((int)pppppppcVar27 + 1) * 4);
                  pppppppcVar38 = pppppppcVar29;
                  (*(code *)ppppppcVar4[0x5978])(pppppppcVar34,0);
                  uStack_3d0 = 0;
                  uStack_3cc = 0;
                  uStack_3c8 = 0;
                  pppppppcVar43 = (code *******)&pppppppcStack_3e0;
                  pppppppcStack_3e0 = pppppppcVar32;
                  pppppppcStack_3dc = pppppppcVar34;
                  ppppppcStack_3d8 = ppppppcVar18;
                  pppppppcStack_3d4 = pppppppcVar27;
                  pppppppcStack_460 =
                       (code *******)
                       (*(code *)(pppppcVar30 + 0x16bd))(&pppppppcStack_3c4,&pppppppcStack_3e0);
                  (*(code *)ppppppcVar4[0x599c])(uStack_3c8);
                  if (pppppppcStack_460 != (code *******)0x0) break;
                  if ((*pppppppcVar32 != (code ******)0x0) || (*pppppppcVar34 != (code ******)0x0))
                  {
                    pppppppcVar43 = pppppppcVar32;
                    pppppppcVar38 = pppppppcVar34;
                    pppppppcStack_460 =
                         (code *******)
                         FUN_000239ac(pppppppcVar26,pppppppcVar32,pppppppcVar34,
                                      (code *)((int)pppppppcVar27 + 1));
                    (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);
                    if (pppppppcStack_460 != (code *******)0x0) goto LAB_0002916c;
                    goto LAB_00028bc8;
                  }
                  pcVar46 = (code *)((int)pppppppcStack_360 + (int)(pppppppcVar29 + -1));
                  do {
                    while( true ) {
                      pppppppcVar27 = (code *******)((int)pppppppcVar27 + -1);
                      if ((int)pppppppcVar27 < 0) goto LAB_00029210;
                      pppppppcVar43 = *(code ********)(pcVar46 + -4);
                      if (pppppppcVar43 != (code *******)0x0) break;
                      pcVar46 = pcVar46 + -4;
                    }
                    pcVar46 = pcVar46 + -4;
                  } while (((uint)pppppppcVar43[0xd] & 0x8000000) == 0);
                  ppppppcVar18 = (code ******)
                                 (*(code *)(pppppcVar11 + -0x108d))
                                           (&pppppppcStack_3c4,pppppppcVar43,pppppppcVar27);
                }
              }
              (*(code *)ppppppcVar4[0x599c])(pppppppcVar32);
              (*(code *)ppppppcVar4[0x599c])(pppppppcVar34);
              if (pppppppcStack_460 == (code *******)0x1) goto LAB_000291a4;
            }
          }
          else {
            pppppppcStack_460 = (code *******)0xc;
          }
          goto LAB_00028e84;
        }
        if (pppppppcVar44[0x13] != (code ******)0x0) {
          pppppppcVar43 = (code *******)pppppppcStack_360[(int)pppppppcVar27];
          pppppppcVar38 = pppppppcVar27;
          ppppppcStack_364 = (code ******)FUN_0001bdcc(&pppppppcStack_3c4,pppppppcVar43);
          goto LAB_0002930c;
        }
LAB_000292a8:
        if ((((uint)pppppppcVar22[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar6)) {
          cVar20 = *(code *)(pppppppcVar44 + 0x16);
          goto LAB_000292c0;
        }
LAB_00028be8:
        pppppppcStack_460 = pppppppcVar42;
        if (pppppppcVar6 == (code *******)0x0) goto LAB_00028e84;
        if (pppppppcVar6 < (code *******)0x2) {
          *pppppppcVar2 = (code ******)0x0;
          pppppppcVar2[1] = (code ******)pppppppcStack_368;
          goto LAB_00028c4c;
        }
        pppppppcVar26 = pppppppcVar2 + 2;
        do {
          pppppppcVar26[1] = (code ******)0xffffffff;
          *pppppppcVar26 = (code ******)0xffffffff;
          pppppppcVar26 = pppppppcVar26 + 2;
        } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);
        *pppppppcVar2 = (code ******)0x0;
        pppppppcVar2[1] = (code ******)pppppppcStack_368;
        if (((uint)pppppppcVar22[7] & 0x8000000) != 0) {
LAB_00028c4c:
          pppppppcVar26 = pppppppcVar2;
          do {
            pppppppcVar43 = (code *******)*pppppppcVar26;
            if (pppppppcVar43 != (code *******)0xffffffff) {
              if (cStack_378 != '\0') {
                pppppppcVar36 = pppppppcStack_3a4;
                if (pppppppcVar43 != pppppppcStack_3a8) {
                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar43 * 4);
                }
                *pppppppcVar26 = (code ******)pppppppcVar36;
                pppppppcVar36 = pppppppcStack_3a4;
                if (pppppppcStack_3a8 != (code *******)pppppppcVar26[1]) {
                  pppppppcVar36 = *(code ********)(iStack_3b8 + (int)pppppppcVar26[1] * 4);
                }
                pppppppcVar26[1] = (code ******)pppppppcVar36;
              }
              *pppppppcVar26 = (code ******)((int)pppppppcStack_3ec + (int)*pppppppcVar26);
              pppppppcVar43 = (code *******)((int)pppppppcStack_3ec + (int)pppppppcVar26[1]);
              pppppppcVar26[1] = (code ******)pppppppcVar43;
            }
            pppppppcVar26 = pppppppcVar26 + 2;
          } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcVar6 * 2);
          if (0 < (int)pcStack_428) {
            pppppppcVar26 = pppppppcVar2 + (int)pppppppcVar6 * 2;
            do {
              *pppppppcVar26 = (code ******)0xffffffff;
              pppppppcVar26[1] = (code ******)0xffffffff;
              pppppppcVar26 = pppppppcVar26 + 2;
            } while (pppppppcVar26 != pppppppcVar2 + (int)pppppppcStack_2f8 * 2);
          }
          pppppppcVar38 = pppppppcStack_3ec;
          pppppppcStack_460 = pppppppcVar42;
          if (pppppppcVar44[0x21] != (code ******)0x0) {
            pppppppcVar38 = (code *******)((int)pppppppcVar6 + -1);
            pppppppcVar6 = (code *******)0x0;
            pppppppcVar26 = pppppppcVar2;
            while( true ) {
              pppppppcVar43 = (code *******)((int)pppppppcVar6 * 4);
              if (pppppppcVar38 == pppppppcVar6) break;
              if (*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) != pppppppcVar6) {
                pppppppcVar26[2] =
                     pppppppcVar2
                     [(int)((int)*(code ********)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1
                           ) * 2];
                pppppppcVar26[3] =
                     pppppppcVar2
                     [((int)*(code ******)((int)pppppppcVar43 + (int)pppppppcVar44[0x21]) + 1) * 2 +
                      1];
              }
              pppppppcVar6 = (code *******)((int)pppppppcVar6 + 1);
              pppppppcVar26 = pppppppcVar26 + 2;
            }
          }
          goto LAB_00028e84;
        }
        if ((char)*(code *)(pppppppcVar44 + 0x16) < '\0') {
          bVar19 = 0 < (int)pppppppcVar44[0x13];
        }
        else {
          bVar19 = false;
        }
        pppppppcVar43 = (code *******)&pppppppcStack_3c4;
        pppppppcVar38 = pppppppcVar6;
        pppppppcStack_460 =
             (code *******)
             FUN_00020db4(pppppppcVar22,pppppppcVar43,pppppppcVar6,pppppppcVar2,bVar19);
        if (pppppppcStack_460 == (code *******)0x0) goto LAB_00028c4c;
      }
    }
    else if (uStack_3a0 < 0x3fffffff) {
      pppppppcStack_360 = (code *******)(*(code *)ppppppcVar4[0x5981])((uStack_3a0 + 1) * 4);
      if (pppppppcStack_360 != (code *******)0x0) goto LAB_000290e0;
      pppppppcStack_460 = (code *******)0xc;
    }
    else {
      pppppppcStack_460 = (code *******)0xc;
    }
  }
  else {
    if (uVar21 < 0xccccccd) {
      iVar40 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 0x28);
      iStack_350 = iVar40;
      iStack_340 = (*(code *)ppppppcVar4[0x5981])((int)ppppppcVar39 * 8);
      if ((iVar40 != 0) && (iStack_340 != 0)) goto LAB_00029090;
    }
    pppppppcStack_460 = (code *******)0xc;
  }
LAB_00028e84:
  (*(code *)ppppppcVar4[0x599c])(pppppppcStack_360);
  pppppppcVar22 = pppppppcVar38;
  if (pppppppcVar44[0x13] != (code ******)0x0) {
    FUN_0001e14c(&pppppppcStack_3c4);
    (*(code *)ppppppcVar4[0x599c])(iStack_340);
    (*(code *)ppppppcVar4[0x599c])(iStack_350);
    pppppppcVar22 = pppppppcVar38;
  }
  FUN_0001dc20(&pppppppcStack_3c4);
LAB_00028eb4:
  if (ppppcStack_33c == *ppppppcVar4[0x5999]) {
    return pppppppcStack_460;
  }
  pppppcVar5 = ppppppcVar4[0x5991];
  ppppcVar24 = ppppcStack_33c;
  (*(code *)pppppcVar5)();
  *(byte *)(pppppppcVar22 + 7) =
       (byte)*(code *)(pppppppcVar22 + 7) & 0xf6 |
       (byte)(((uint)((int)*pppppcVar5[0x533a] << 6) >> 0x1f) << 3) | 1;
  iVar40 = FUN_00025ee8(pppppppcVar22,ppppcVar24,pppppppcVar43);
  if (iVar40 == 0) {
    pppppppcVar26 = (code *******)0x0;
  }
  else {
    pppppppcVar26 =
         (code *******)
         (*(code *)pppppcVar5[0x537d])
                   (0,(code *)((int)pppppcVar5[0x5301] +
                              (int)(pppppcVar5[0x5301][iVar40 + -0xcdb] + -0xcca)),5);
  }
  return pppppppcVar26;
code_r0x000291d8:
  if ((int)pppppppcVar28 < (int)pppppppcStack_3ec) goto LAB_00028e48;
  goto LAB_000291e4;
LAB_00028e48:
  pppppppcStack_460 = (code *******)0x1;
  goto LAB_00028e84;
LAB_00028fb4:
  pppppppcStack_460 = (code *******)0xc;
  goto LAB_00028e84;
}

