
/* WARNING: Type propagation algorithm not settling */

reg_errcode_t merge_state_array(re_dfa_t *dfa,re_dfastate_t **dst,re_dfastate_t **src,Idx num)

{
  char *pcVar1;
  bool bVar2;
  re_dfa_t *prVar3;
  undefined *puVar4;
  int iVar5;
  re_dfastate_t *prVar6;
  int *piVar7;
  bitset_word_t bVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  Idx IVar14;
  reg_errcode_t rVar15;
  reg_errcode_t rVar16;
  reg_errcode_t rVar17;
  uint *puVar18;
  undefined4 *puVar19;
  uint uVar20;
  re_dfa_t *prVar21;
  Idx *pIVar22;
  re_dfa_t *cur_nodes;
  re_token_t *prVar23;
  re_dfa_t *prVar24;
  re_node_set *set;
  re_dfastate_t **unaff_s0;
  int iVar25;
  re_dfa_t *prVar26;
  re_node_set *unaff_s1;
  re_node_set *unaff_s2;
  re_node_set *unaff_s3;
  re_state_table_entry *unaff_s4;
  re_dfa_t *unaff_s5;
  size_t *elem;
  re_dfastate_t *unaff_s7;
  re_dfa_t *prVar27;
  undefined *puVar28;
  re_dfa_t *unaff_s8;
  code *pcVar29;
  re_dfa_t *prStack_b8;
  reg_errcode_t rStack_94;
  re_token_t *prStack_90;
  size_t sStack_8c;
  undefined4 *puStack_88;
  Idx *pIStack_84;
  re_dfastate_t **pprStack_80;
  re_node_set *prStack_7c;
  re_node_set *prStack_78;
  re_node_set *prStack_74;
  re_state_table_entry *prStack_70;
  re_dfa_t *prStack_6c;
  re_dfastate_t *prStack_68;
  re_dfastate_t *prStack_64;
  re_dfa_t *prStack_60;
  bin_tree_t *pbStack_5c;
  re_dfa_t *prStack_4c;
  reg_errcode_t err;
  re_node_set merged_set;
  
  puVar4 = PTR___stack_chk_guard_00040330;
  iVar5 = *(int *)PTR___stack_chk_guard_00040330;
  prVar24 = (re_dfa_t *)num;
  if (0 < num) {
    unaff_s2 = (re_node_set *)0x0;
    unaff_s8 = (re_dfa_t *)&merged_set;
    unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0);
    unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4);
    unaff_s0 = dst;
    unaff_s1 = (re_node_set *)src;
    do {
      while( true ) {
        dst = (re_dfastate_t **)*unaff_s0;
        src = (re_dfastate_t **)unaff_s1->alloc;
        unaff_s3 = (re_node_set *)num;
        unaff_s5 = dfa;
        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;
        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);
        *unaff_s0 = (re_dfastate_t *)src;
        unaff_s1 = (re_node_set *)&unaff_s1->nelem;
        unaff_s0 = unaff_s0 + 1;
        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;
      }
      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;
      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;
      if (bVar2) {
        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;
        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);
        rVar17 = err;
        if (err != _REG_NOERROR) goto LAB_0001fb18;
        dst = (re_dfastate_t **)dfa;
        src = (re_dfastate_t **)unaff_s8;
        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);
        puVar28 = PTR_free_0004033c;
        *unaff_s0 = prVar6;
        (*(code *)puVar28)(merged_set.elems);
        rVar17 = err;
        if (err != _REG_NOERROR) goto LAB_0001fb18;
      }
      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);
      unaff_s0 = unaff_s0 + 1;
      unaff_s1 = (re_node_set *)&unaff_s1->nelem;
    } while ((re_node_set *)num != unaff_s2);
  }
LAB_0001fb14:
  rVar17 = _REG_NOERROR;
  num = (Idx)unaff_s3;
  dfa = unaff_s5;
LAB_0001fb18:
  if (iVar5 == *(int *)puVar4) {
    return rVar17;
  }
  pcVar29 = expand_bkref_cache;
  puVar28 = PTR___stack_chk_fail_00040310;
  (*(code *)PTR___stack_chk_fail_00040310)();
  piVar7 = *(int **)(puVar28 + 0x207d0);
  prStack_68 = (re_dfastate_t *)puVar4;
  pIStack_84 = (Idx *)*piVar7;
  cur_nodes = (re_dfa_t *)0x0;
  prVar27 = *(re_dfa_t **)(iVar5 + 0x6c);
  prStack_b8 = (re_dfa_t *)src;
  prVar26 = prVar24;
  while ((int)cur_nodes < (int)prVar27) {
    prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74);
    prVar21 = (re_dfa_t *)
              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))
                      ->word_char + 0xffffffe8) +
               (int)((re_dfa_t *)
                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))
                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);
    bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17];
    while (prVar3 = prVar21, (int)src <= (int)bVar8) {
      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;
      prVar26 = (re_dfa_t *)
                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))
                        ->word_char + 0xffffffe8) +
                 (int)((re_dfa_t *)
                      (((re_dfa_t *)
                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char
                      + -0x18))->word_char + 0xffffffa0U) / 2);
      prVar21 = prVar26;
      prVar27 = prVar3;
      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];
    }
    prVar26 = prVar3;
    cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1);
  }
LAB_0001fc4c:
  rVar17 = _REG_NOERROR;
  pprStack_80 = unaff_s0;
  prStack_7c = unaff_s1;
  prStack_78 = unaff_s2;
  prStack_74 = (re_node_set *)num;
  prStack_70 = unaff_s4;
  prStack_6c = dfa;
  prStack_64 = unaff_s7;
  prStack_60 = unaff_s8;
  pbStack_5c = (bin_tree_t *)pcVar29;
  prStack_4c = prVar24;
  if ((int)cur_nodes < (int)*(re_dfa_t **)(iVar5 + 0x6c)) {
    iVar9 = (int)cur_nodes * 0x14;
    puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);
    rVar17 = _REG_NOERROR;
    if ((re_dfa_t *)src == (re_dfa_t *)puVar19[1]) {
      elem = &((re_dfa_t *)dst)->nodes_len;
      if (cur_nodes == (re_dfa_t *)0xffffffff) {
        rVar17 = _REG_NOERROR;
      }
      else {
        iVar10 = *(int *)(puVar28 + 0x20694);
        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);
        iVar11 = *(int *)(puVar28 + 0x20694);
        iVar12 = *(int *)(puVar28 + 0x20694);
        prVar24 = prVar26;
LAB_0001fd9c:
        do {
          prStack_b8 = (re_dfa_t *)*puVar19;
          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;
          cur_nodes = (re_dfa_t *)elem;
          prVar26 = prStack_b8;
          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);
          if (IVar14 != 0) {
            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));
            iVar25 = (int)prVar21 * 4;
            if ((re_dfa_t *)src == prVar21) {
              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;
              cur_nodes = (re_dfa_t *)elem;
              prStack_b8 = prVar26;
              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);
              if (IVar14 == 0) {
                prStack_90 = (re_token_t *)0x1;
                sStack_8c = 1;
                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);
                if (puStack_88 == (undefined4 *)0x0) {
                  sStack_8c = 0;
                  rStack_94 = _REG_ESPACE;
                  prStack_90 = (re_token_t *)0x0;
                }
                else {
                  *puStack_88 = prVar26;
                  rStack_94 = _REG_NOERROR;
                }
                cur_nodes = (re_dfa_t *)&prStack_90;
                prStack_b8 = prStack_4c;
                prVar24 = (re_dfa_t *)&_gp;
                rVar15 = check_arrival_expand_ecl
                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);
                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);
                (**(code **)(puVar28 + 0x207dc))(puStack_88);
                rVar17 = rStack_94;
                prVar26 = prVar24;
                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||
                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;
                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);
                goto LAB_0001fd9c;
              }
            }
            else {
              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);
              prVar23 = prVar24->nodes;
              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];
              if (prVar23 == (re_token_t *)0x0) {
                prStack_90 = (re_token_t *)0x1;
                sStack_8c = 1;
                prVar26 = prVar24;
                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);
                if (puStack_88 == (undefined4 *)0x0) {
LAB_0001ff68:
                  rVar17 = _REG_ESPACE;
                  break;
                }
                *puStack_88 = prVar21;
                rStack_94 = _REG_NOERROR;
LAB_0001fd48:
                prStack_b8 = (re_dfa_t *)&prStack_90;
                cur_nodes = prVar27;
                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);
                pcVar29 = *(code **)(puVar28 + 0x207dc);
                prVar24->nodes = prVar23;
                (*pcVar29)(puStack_88);
                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&
                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;
              }
              else {
                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;
                prStack_b8 = prVar21;
                IVar14 = re_node_set_contains
                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,
                                    (re_node_set *)prVar21);
                if (IVar14 == 0) {
                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);
                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);
                  if (rStack_94 == _REG_NOERROR) {
                    pcVar29 = *(code **)(puVar28 + 0x207dc);
                    if (iVar13 != 0) {
                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);
                      goto LAB_0001fd48;
                    }
                  }
                  else {
                    pcVar29 = *(code **)(puVar28 + 0x207dc);
                  }
                  (*pcVar29)(puStack_88);
                  rVar17 = rStack_94;
                  cur_nodes = prVar21;
                  prVar26 = prVar24;
                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;
                  break;
                }
              }
            }
          }
          pcVar1 = (char *)(puVar19 + 4);
          rVar17 = _REG_NOERROR;
          prVar26 = prVar24;
          puVar19 = puVar19 + 5;
        } while (*pcVar1 != '\0');
      }
    }
  }
  if (pIStack_84 == (Idx *)*piVar7) {
    return rVar17;
  }
  pcVar29 = *(code **)(puVar28 + 0x207b0);
  pIVar22 = pIStack_84;
  (*pcVar29)();
  prVar23 = cur_nodes->nodes;
  piVar7 = (int *)pIVar22[0x15];
  if (0 < (int)prVar23) {
    iVar5 = 0;
    do {
      while( true ) {
        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;
        puVar18 = (uint *)(*piVar7 + iVar9 * 8);
        iVar5 = iVar5 + 1;
        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&
           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;
        if ((int)prVar23 <= iVar5) {
          return _REG_NOERROR;
        }
      }
      iVar11 = pIVar22[0x1f];
      iVar10 = pIVar22[0x21];
      if (iVar11 == pIVar22[0x20]) {
        iVar12 = iVar11 << 1;
        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);
        if (iVar10 == 0) {
          return _REG_ESPACE;
        }
        iVar11 = pIVar22[0x1f];
        pIVar22[0x21] = iVar10;
        pIVar22[0x20] = iVar12;
      }
      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);
      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;
      if (puVar19 == (undefined4 *)0x0) {
        return _REG_ESPACE;
      }
      pIVar22[0x1f] = iVar11 + 1;
      puVar19[1] = iVar9;
      *puVar19 = prVar26;
      prVar23 = cur_nodes->nodes;
    } while (iVar5 < (int)prVar23);
  }
  return _REG_NOERROR;
}



/* WARNING: Type propagation algorithm not settling */

int FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)

{
  char *pcVar1;
  bool bVar2;
  int *piVar3;
  undefined *puVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  uint *puVar14;
  undefined4 *puVar15;
  uint uVar16;
  int *piVar17;
  int *piVar18;
  int *piVar19;
  undefined4 uVar20;
  undefined4 *unaff_s0;
  int *piVar21;
  int *unaff_s1;
  int *unaff_s2;
  int *unaff_s3;
  int *piVar22;
  undefined *unaff_s4;
  undefined4 *unaff_s5;
  undefined *unaff_s7;
  int *piVar23;
  undefined *puVar24;
  int *unaff_s8;
  code *pcVar25;
  int aiStack_94 [3];
  undefined4 *puStack_88;
  int iStack_84;
  undefined4 *puStack_80;
  int *piStack_7c;
  int *piStack_78;
  int *piStack_74;
  undefined *puStack_70;
  undefined4 *puStack_6c;
  undefined *puStack_68;
  undefined *puStack_64;
  int *piStack_60;
  code *pcStack_5c;
  int *piStack_4c;
  int local_3c;
  int aiStack_38 [2];
  undefined4 local_30;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_00040330;
  local_2c = *(int *)PTR___stack_chk_guard_00040330;
  piVar22 = param_4;
  if (0 < (int)param_4) {
    unaff_s2 = (int *)0x0;
    unaff_s8 = aiStack_38;
    unaff_s4 = PTR_LAB_000401f4 + -0xed0;
    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;
    unaff_s0 = param_2;
    unaff_s1 = param_3;
    do {
      while( true ) {
        param_2 = (undefined4 *)*unaff_s0;
        param_3 = (int *)*unaff_s1;
        unaff_s3 = param_4;
        unaff_s5 = param_1;
        if (param_2 != (undefined4 *)0x0) break;
        unaff_s2 = (int *)((int)unaff_s2 + 1);
        *unaff_s0 = param_3;
        unaff_s1 = unaff_s1 + 1;
        unaff_s0 = unaff_s0 + 1;
        if (param_4 == unaff_s2) goto LAB_0001fb14;
      }
      bVar2 = param_3 != (int *)0x0;
      param_3 = param_3 + 1;
      if (bVar2) {
        param_2 = param_2 + 1;
        local_3c = FUN_0001f130(unaff_s8);
        iVar5 = local_3c;
        if (local_3c != 0) goto LAB_0001fb18;
        param_2 = param_1;
        param_3 = unaff_s8;
        uVar20 = FUN_0001f73c(&local_3c);
        puVar24 = PTR_free_0004033c;
        *unaff_s0 = uVar20;
        (*(code *)puVar24)(local_30);
        iVar5 = local_3c;
        if (local_3c != 0) goto LAB_0001fb18;
      }
      unaff_s2 = (int *)((int)unaff_s2 + 1);
      unaff_s0 = unaff_s0 + 1;
      unaff_s1 = unaff_s1 + 1;
    } while (param_4 != unaff_s2);
  }
LAB_0001fb14:
  iVar5 = 0;
  param_4 = unaff_s3;
  param_1 = unaff_s5;
LAB_0001fb18:
  if (local_2c == *(int *)puVar4) {
    return iVar5;
  }
  pcVar25 = FUN_0001fb60;
  iVar5 = local_2c;
  puVar24 = PTR___stack_chk_fail_00040310;
  (*(code *)PTR___stack_chk_fail_00040310)();
  piVar6 = *(int **)(puVar24 + 0x207d0);
  puStack_68 = puVar4;
  iStack_84 = *piVar6;
  piVar18 = (int *)0x0;
  piVar23 = *(int **)(iVar5 + 0x6c);
  piVar19 = param_3;
  piVar21 = piVar22;
  while ((int)piVar18 < (int)piVar23) {
    piVar19 = *(int **)(iVar5 + 0x74);
    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);
    iVar7 = piVar19[(int)piVar17 * 5 + 1];
    while (piVar3 = piVar17, (int)param_3 <= iVar7) {
      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;
      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);
      piVar17 = piVar21;
      piVar23 = piVar3;
      iVar7 = piVar19[(int)piVar21 * 5 + 1];
    }
    piVar21 = piVar3;
    piVar18 = (int *)((int)piVar3 + 1);
  }
LAB_0001fc4c:
  iVar7 = 0;
  puStack_80 = unaff_s0;
  piStack_7c = unaff_s1;
  piStack_78 = unaff_s2;
  piStack_74 = param_4;
  puStack_70 = unaff_s4;
  puStack_6c = param_1;
  puStack_64 = unaff_s7;
  piStack_60 = unaff_s8;
  pcStack_5c = pcVar25;
  piStack_4c = piVar22;
  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {
    iVar8 = (int)piVar18 * 0x14;
    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);
    iVar7 = 0;
    if (param_3 == (int *)puVar15[1]) {
      if (piVar18 == (int *)0xffffffff) {
        iVar7 = 0;
      }
      else {
        iVar9 = *(int *)(puVar24 + 0x20694);
        piVar23 = *(int **)(iVar5 + 0x54);
        iVar10 = *(int *)(puVar24 + 0x20694);
        iVar11 = *(int *)(puVar24 + 0x20694);
        piVar22 = piVar21;
LAB_0001fd9c:
        do {
          piVar19 = (int *)*puVar15;
          uVar20 = param_2[1];
          piVar18 = param_2 + 2;
          piVar21 = piVar19;
          iVar7 = FUN_0001d8b0(uVar20);
          if (iVar7 != 0) {
            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));
            iVar7 = (int)piVar17 * 4;
            if (param_3 == piVar17) {
              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);
              piVar18 = param_2 + 2;
              piVar19 = piVar21;
              iVar7 = FUN_0001d8b0(uVar20);
              if (iVar7 == 0) {
                aiStack_94[1] = 1;
                aiStack_94[2] = 1;
                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);
                if (puStack_88 == (undefined4 *)0x0) {
                  aiStack_94[2] = 0;
                  aiStack_94[0] = 0xc;
                  aiStack_94[1] = 0;
                }
                else {
                  *puStack_88 = piVar21;
                  aiStack_94[0] = 0;
                }
                piVar18 = aiStack_94 + 1;
                piVar19 = piStack_4c;
                piVar22 = (int *)&_gp_1;
                iVar12 = FUN_0001e5c8(piVar23,piVar18);
                iVar13 = FUN_0001e02c(param_2);
                (**(code **)(puVar24 + 0x207dc))(puStack_88);
                iVar7 = aiStack_94[0];
                piVar21 = piVar22;
                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||
                   (iVar7 = iVar13, iVar13 != 0)) break;
                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);
                goto LAB_0001fd9c;
              }
            }
            else {
              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);
              iVar12 = *piVar22;
              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);
              if (iVar12 == 0) {
                aiStack_94[1] = 1;
                aiStack_94[2] = 1;
                piVar21 = piVar22;
                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);
                if (puStack_88 == (undefined4 *)0x0) {
LAB_0001ff68:
                  iVar7 = 0xc;
                  break;
                }
                *puStack_88 = piVar17;
                aiStack_94[0] = 0;
LAB_0001fd48:
                piVar19 = aiStack_94 + 1;
                piVar18 = piVar23;
                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);
                pcVar25 = *(code **)(puVar24 + 0x207dc);
                *piVar22 = iVar12;
                (*pcVar25)(puStack_88);
                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&
                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;
              }
              else {
                piVar18 = (int *)(iVar12 + 0xc);
                piVar19 = piVar17;
                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));
                if (iVar13 == 0) {
                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);
                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);
                  if (aiStack_94[0] == 0) {
                    pcVar25 = *(code **)(puVar24 + 0x207dc);
                    if (iVar12 != 0) {
                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);
                      goto LAB_0001fd48;
                    }
                  }
                  else {
                    pcVar25 = *(code **)(puVar24 + 0x207dc);
                  }
                  (*pcVar25)(puStack_88);
                  iVar7 = aiStack_94[0];
                  piVar18 = piVar17;
                  piVar21 = piVar22;
                  if (aiStack_94[0] == 0) goto LAB_0001ff68;
                  break;
                }
              }
            }
          }
          pcVar1 = (char *)(puVar15 + 4);
          iVar7 = 0;
          piVar21 = piVar22;
          puVar15 = puVar15 + 5;
        } while (*pcVar1 != '\0');
      }
    }
  }
  if (iStack_84 == *piVar6) {
    return iVar7;
  }
  pcVar25 = *(code **)(puVar24 + 0x207b0);
  iVar5 = iStack_84;
  (*pcVar25)();
  iVar7 = *piVar18;
  piVar22 = *(int **)(iVar5 + 0x54);
  if (0 < iVar7) {
    iVar8 = 0;
    do {
      while( true ) {
        iVar9 = *(int *)(*piVar19 + iVar8 * 4);
        puVar14 = (uint *)(*piVar22 + iVar9 * 8);
        iVar8 = iVar8 + 1;
        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&
           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;
        if (iVar7 <= iVar8) {
          return 0;
        }
      }
      iVar10 = *(int *)(iVar5 + 0x7c);
      iVar7 = *(int *)(iVar5 + 0x84);
      if (iVar10 == *(int *)(iVar5 + 0x80)) {
        iVar11 = iVar10 << 1;
        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);
        if (iVar7 == 0) {
          return 0xc;
        }
        iVar10 = *(int *)(iVar5 + 0x7c);
        *(int *)(iVar5 + 0x84) = iVar7;
        *(int *)(iVar5 + 0x80) = iVar11;
      }
      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);
      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;
      if (puVar15 == (undefined4 *)0x0) {
        return 0xc;
      }
      *(int *)(iVar5 + 0x7c) = iVar10 + 1;
      puVar15[1] = iVar9;
      *puVar15 = piVar21;
      iVar7 = *piVar18;
    } while (iVar8 < iVar7);
  }
  return 0;
}


lui gp,0x3
addiu gp,gp,-0x7940
addu gp,gp,t9
addiu sp,sp,-0x58
sw s6,0x48(sp)
lw s6,-0x7da0(gp)
sw gp,0x10(sp)
sw ra,0x54(sp)
sw s8,0x50(sp)
sw s7,0x4c(sp)
sw s5,0x44(sp)
sw s4,0x40(sp)
sw s3,0x3c(sp)
sw s2,0x38(sp)
sw s1,0x34(sp)
sw s0,0x30(sp)
lw v0,0x0(s6)
sw v0,0x2c(sp)
blez a3,0x0001fb14
_nop
lw s4,-0x7edc(gp)
or s3,a3,zero
lw s7,-0x7edc(gp)
or s5,a0,zero
or s2,zero,zero
addiu s8,sp,0x20
or s0,a1,zero
addiu s4,s4,-0xed0
addiu s7,s7,-0x8c4
b 0x0001faf4
_or s1,a2,zero
beq a2,zero,0x0001fae4
_addiu a2,a2,0x4
addiu a1,a1,0x4
or t9,s4,zero
bal 0x0001f130
_or a0,s8,zero
lw gp,0x10(sp)
bne v0,zero,0x0001fb18
_sw v0,0x1c(sp)
addiu a0,sp,0x1c
or a2,s8,zero
or t9,s7,zero
bal 0x0001f73c
_or a1,s5,zero
lw gp,0x10(sp)
lw a0,0x28(sp)
lw t9,-0x7d94(gp)
jalr t9
_sw v0,0x0(s0)
lw v0,0x1c(sp)
bne v0,zero,0x0001fb18
_lw gp,0x10(sp)
addiu s2,s2,0x1
addiu s0,s0,0x4
beq s3,s2,0x0001fb14
_addiu s1,s1,0x4
lw a1,0x0(s0)
bne a1,zero,0x0001fa8c
_lw a2,0x0(s1)
addiu s2,s2,0x1
sw a2,0x0(s0)
addiu s1,s1,0x4
bne s3,s2,0x0001faf4
_addiu s0,s0,0x4
or v0,zero,zero
lw a0,0x2c(sp)
lw v1,0x0(s6)
bne a0,v1,0x0001fb54
_lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
lw t9,-0x7dc0(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}\n\n" comment (function_definition "int FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}" primitive_type (function_declarator "FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined4 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "int aiStack_94 [3];" primitive_type (array_declarator "aiStack_94 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined4 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "int *piStack_7c;" primitive_type (pointer_declarator "*piStack_7c" * identifier) ;) (declaration "int *piStack_78;" primitive_type (pointer_declarator "*piStack_78" * identifier) ;) (declaration "int *piStack_74;" primitive_type (pointer_declarator "*piStack_74" * identifier) ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "undefined4 *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "undefined *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "int *piStack_60;" primitive_type (pointer_declarator "*piStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "int *piStack_4c;" primitive_type (pointer_declarator "*piStack_4c" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int aiStack_38 [2];" primitive_type (array_declarator "aiStack_38 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00040330;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00040330" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00040330;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00040330" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00040330" * (cast_expression "(int *)PTR___stack_chk_guard_00040330" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar22 = param_4;" (assignment_expression "piVar22 = param_4" identifier = identifier) ;) (if_statement "if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }" if (parenthesized_expression "(0 < (int)param_4)" ( (binary_expression "0 < (int)param_4" number_literal < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }" { (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8 = aiStack_38;" (assignment_expression "unaff_s8 = aiStack_38" identifier = identifier) ;) (expression_statement "unaff_s4 = PTR_LAB_000401f4 + -0xed0;" (assignment_expression "unaff_s4 = PTR_LAB_000401f4 + -0xed0" identifier = (binary_expression "PTR_LAB_000401f4 + -0xed0" identifier + number_literal)) ;) (expression_statement "unaff_s7 = PTR_LAB_000401f4 + -0x8c4;" (assignment_expression "unaff_s7 = PTR_LAB_000401f4 + -0x8c4" identifier = (binary_expression "PTR_LAB_000401f4 + -0x8c4" identifier + number_literal)) ;) (expression_statement "unaff_s0 = param_2;" (assignment_expression "unaff_s0 = param_2" identifier = identifier) ;) (expression_statement "unaff_s1 = param_3;" (assignment_expression "unaff_s1 = param_3" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);" do (compound_statement "{\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    }" { (while_statement "while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }" { (expression_statement "param_2 = (undefined4 *)*unaff_s0;" (assignment_expression "param_2 = (undefined4 *)*unaff_s0" identifier = (cast_expression "(undefined4 *)*unaff_s0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s0" * identifier))) ;) (expression_statement "param_3 = (int *)*unaff_s1;" (assignment_expression "param_3 = (int *)*unaff_s1" identifier = (cast_expression "(int *)*unaff_s1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s1" * identifier))) ;) (expression_statement "unaff_s3 = param_4;" (assignment_expression "unaff_s3 = param_4" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (param_2 != (undefined4 *)0x0) break;" if (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "unaff_s2 = (int *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (int *)((int)unaff_s2 + 1)" identifier = (cast_expression "(int *)((int)unaff_s2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + 1)" ( (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*unaff_s0 = param_3;" (assignment_expression "*unaff_s0 = param_3" (pointer_expression "*unaff_s0" * identifier) = identifier) ;) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (if_statement "if (param_4 == unaff_s2) goto LAB_0001fb14;" if (parenthesized_expression "(param_4 == unaff_s2)" ( (binary_expression "param_4 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_0001fb14;" goto statement_identifier ;)) })) (expression_statement "bVar2 = param_3 != (int *)0x0;" (assignment_expression "bVar2 = param_3 != (int *)0x0" identifier = (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (if_statement "if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "local_3c = FUN_0001f130(unaff_s8);" (assignment_expression "local_3c = FUN_0001f130(unaff_s8)" identifier = (call_expression "FUN_0001f130(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier )))) ;) (expression_statement "iVar5 = local_3c;" (assignment_expression "iVar5 = local_3c" identifier = identifier) ;) (if_statement "if (local_3c != 0) goto LAB_0001fb18;" if (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001fb18;" goto statement_identifier ;)) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" identifier = identifier) ;) (expression_statement "param_3 = unaff_s8;" (assignment_expression "param_3 = unaff_s8" identifier = identifier) ;) (expression_statement "uVar20 = FUN_0001f73c(&local_3c);" (assignment_expression "uVar20 = FUN_0001f73c(&local_3c)" identifier = (call_expression "FUN_0001f73c(&local_3c)" identifier (argument_list "(&local_3c)" ( (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "puVar24 = PTR_free_0004033c;" (assignment_expression "puVar24 = PTR_free_0004033c" identifier = identifier) ;) (expression_statement "*unaff_s0 = uVar20;" (assignment_expression "*unaff_s0 = uVar20" (pointer_expression "*unaff_s0" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar24)(local_30);" (call_expression "(*(code *)puVar24)(local_30)" (parenthesized_expression "(*(code *)puVar24)" ( (pointer_expression "*(code *)puVar24" * (cast_expression "(code *)puVar24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "iVar5 = local_3c;" (assignment_expression "iVar5 = local_3c" identifier = identifier) ;) (if_statement "if (local_3c != 0) goto LAB_0001fb18;" if (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001fb18;" goto statement_identifier ;)) })) (expression_statement "unaff_s2 = (int *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (int *)((int)unaff_s2 + 1)" identifier = (cast_expression "(int *)((int)unaff_s2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + 1)" ( (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != unaff_s2)" ( (binary_expression "param_4 != unaff_s2" identifier != identifier) )) ;) })) (labeled_statement "LAB_0001fb14:\n  iVar5 = 0;" statement_identifier : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) (expression_statement "param_4 = unaff_s3;" (assignment_expression "param_4 = unaff_s3" identifier = identifier) ;) (expression_statement "param_1 = unaff_s5;" (assignment_expression "param_1 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar4)" ( (binary_expression "local_2c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar25 = FUN_0001fb60;" (assignment_expression "pcVar25 = FUN_0001fb60" identifier = identifier) ;) (expression_statement "iVar5 = local_2c;" (assignment_expression "iVar5 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_00040310;" (assignment_expression "puVar24 = PTR___stack_chk_fail_00040310" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00040310)();" (call_expression "(*(code *)PTR___stack_chk_fail_00040310)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00040310)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00040310" * (cast_expression "(code *)PTR___stack_chk_fail_00040310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar24 + 0x207d0);" (assignment_expression "piVar6 = *(int **)(puVar24 + 0x207d0)" identifier = (pointer_expression "*(int **)(puVar24 + 0x207d0)" * (cast_expression "(int **)(puVar24 + 0x207d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207d0)" ( (binary_expression "puVar24 + 0x207d0" identifier + number_literal) ))))) ;) (expression_statement "puStack_68 = puVar4;" (assignment_expression "puStack_68 = puVar4" identifier = identifier) ;) (expression_statement "iStack_84 = *piVar6;" (assignment_expression "iStack_84 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar23 = *(int **)(iVar5 + 0x6c);" (assignment_expression "piVar23 = *(int **)(iVar5 + 0x6c)" identifier = (pointer_expression "*(int **)(iVar5 + 0x6c)" * (cast_expression "(int **)(iVar5 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "piVar19 = param_3;" (assignment_expression "piVar19 = param_3" identifier = identifier) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (while_statement "while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }" while (parenthesized_expression "((int)piVar18 < (int)piVar23)" ( (binary_expression "(int)piVar18 < (int)piVar23" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }" { (expression_statement "piVar19 = *(int **)(iVar5 + 0x74);" (assignment_expression "piVar19 = *(int **)(iVar5 + 0x74)" identifier = (pointer_expression "*(int **)(iVar5 + 0x74)" * (cast_expression "(int **)(iVar5 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);" (assignment_expression "piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2)" identifier = (cast_expression "(int *)((int)((int)piVar18 + (int)piVar23) / 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)piVar18 + (int)piVar23) / 2)" ( (binary_expression "(int)((int)piVar18 + (int)piVar23) / 2" (cast_expression "(int)((int)piVar18 + (int)piVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)piVar18 + (int)piVar23)" ( (binary_expression "(int)piVar18 + (int)piVar23" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "iVar7 = piVar19[(int)piVar17 * 5 + 1];" (assignment_expression "iVar7 = piVar19[(int)piVar17 * 5 + 1]" identifier = (subscript_expression "piVar19[(int)piVar17 * 5 + 1]" identifier [ (binary_expression "(int)piVar17 * 5 + 1" (binary_expression "(int)piVar17 * 5" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) (while_statement "while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }" while (parenthesized_expression "(piVar3 = piVar17, (int)param_3 <= iVar7)" ( (comma_expression "piVar3 = piVar17, (int)param_3 <= iVar7" (assignment_expression "piVar3 = piVar17" identifier = identifier) , (binary_expression "(int)param_3 <= iVar7" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier)) )) (compound_statement "{\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }" { (if_statement "if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;" if (parenthesized_expression "((int)piVar3 <= (int)piVar18)" ( (binary_expression "(int)piVar3 <= (int)piVar18" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001fc4c;" goto statement_identifier ;)) (expression_statement "piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);" (assignment_expression "piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2)" identifier = (cast_expression "(int *)((int)((int)piVar18 + (int)piVar3) / 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)piVar18 + (int)piVar3) / 2)" ( (binary_expression "(int)((int)piVar18 + (int)piVar3) / 2" (cast_expression "(int)((int)piVar18 + (int)piVar3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)piVar18 + (int)piVar3)" ( (binary_expression "(int)piVar18 + (int)piVar3" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "piVar17 = piVar21;" (assignment_expression "piVar17 = piVar21" identifier = identifier) ;) (expression_statement "piVar23 = piVar3;" (assignment_expression "piVar23 = piVar3" identifier = identifier) ;) (expression_statement "iVar7 = piVar19[(int)piVar21 * 5 + 1];" (assignment_expression "iVar7 = piVar19[(int)piVar21 * 5 + 1]" identifier = (subscript_expression "piVar19[(int)piVar21 * 5 + 1]" identifier [ (binary_expression "(int)piVar21 * 5 + 1" (binary_expression "(int)piVar21 * 5" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) })) (expression_statement "piVar21 = piVar3;" (assignment_expression "piVar21 = piVar3" identifier = identifier) ;) (expression_statement "piVar18 = (int *)((int)piVar3 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar3 + 1)" identifier = (cast_expression "(int *)((int)piVar3 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 1)" ( (binary_expression "(int)piVar3 + 1" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_0001fc4c:\n  iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (expression_statement "puStack_80 = unaff_s0;" (assignment_expression "puStack_80 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_7c = unaff_s1;" (assignment_expression "piStack_7c = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_78 = unaff_s2;" (assignment_expression "piStack_78 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_74 = param_4;" (assignment_expression "piStack_74 = param_4" identifier = identifier) ;) (expression_statement "puStack_70 = unaff_s4;" (assignment_expression "puStack_70 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_6c = param_1;" (assignment_expression "puStack_6c = param_1" identifier = identifier) ;) (expression_statement "puStack_64 = unaff_s7;" (assignment_expression "puStack_64 = unaff_s7" identifier = identifier) ;) (expression_statement "piStack_60 = unaff_s8;" (assignment_expression "piStack_60 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar25;" (assignment_expression "pcStack_5c = pcVar25" identifier = identifier) ;) (expression_statement "piStack_4c = piVar22;" (assignment_expression "piStack_4c = piVar22" identifier = identifier) ;) (if_statement "if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" if (parenthesized_expression "((int)piVar18 < (int)*(int **)(iVar5 + 0x6c))" ( (binary_expression "(int)piVar18 < (int)*(int **)(iVar5 + 0x6c)" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(int **)(iVar5 + 0x6c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(iVar5 + 0x6c)" * (cast_expression "(int **)(iVar5 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) )))))) )) (compound_statement "{\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" { (expression_statement "iVar8 = (int)piVar18 * 0x14;" (assignment_expression "iVar8 = (int)piVar18 * 0x14" identifier = (binary_expression "(int)piVar18 * 0x14" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);" (assignment_expression "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar8)" ( (binary_expression "*(int *)(iVar5 + 0x74) + iVar8" (pointer_expression "*(int *)(iVar5 + 0x74)" * (cast_expression "(int *)(iVar5 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" if (parenthesized_expression "(param_3 == (int *)puVar15[1])" ( (binary_expression "param_3 == (int *)puVar15[1]" identifier == (cast_expression "(int *)puVar15[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" { (if_statement "if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" if (parenthesized_expression "(piVar18 == (int *)0xffffffff)" ( (binary_expression "piVar18 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = 0;\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" else (compound_statement "{\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" { (expression_statement "iVar9 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar9 = *(int *)(puVar24 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar24 + 0x20694)" * (cast_expression "(int *)(puVar24 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x20694)" ( (binary_expression "puVar24 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = *(int **)(iVar5 + 0x54);" (assignment_expression "piVar23 = *(int **)(iVar5 + 0x54)" identifier = (pointer_expression "*(int **)(iVar5 + 0x54)" * (cast_expression "(int **)(iVar5 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar24 + 0x20694)" * (cast_expression "(int *)(puVar24 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x20694)" ( (binary_expression "puVar24 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar11 = *(int *)(puVar24 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar24 + 0x20694)" * (cast_expression "(int *)(puVar24 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x20694)" ( (binary_expression "puVar24 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "piVar22 = piVar21;" (assignment_expression "piVar22 = piVar21" identifier = identifier) ;) (labeled_statement "LAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');" statement_identifier : (do_statement "do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');" do (compound_statement "{\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        }" { (expression_statement "piVar19 = (int *)*puVar15;" (assignment_expression "piVar19 = (int *)*puVar15" identifier = (cast_expression "(int *)*puVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "uVar20 = param_2[1];" (assignment_expression "uVar20 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "piVar18 = param_2 + 2;" (assignment_expression "piVar18 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar19;" (assignment_expression "piVar21 = piVar19" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0001d8b0(uVar20);" (assignment_expression "iVar7 = FUN_0001d8b0(uVar20)" identifier = (call_expression "FUN_0001d8b0(uVar20)" identifier (argument_list "(uVar20)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" { (expression_statement "piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));" (assignment_expression "piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]))" identifier = (cast_expression "(int *)((int)param_3 + (puVar15[3] - puVar15[2]))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (puVar15[3] - puVar15[2]))" ( (binary_expression "(int)param_3 + (puVar15[3] - puVar15[2])" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(puVar15[3] - puVar15[2])" ( (binary_expression "puVar15[3] - puVar15[2]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) - (subscript_expression "puVar15[2]" identifier [ number_literal ])) ))) )))) ;) (expression_statement "iVar7 = (int)piVar17 * 4;" (assignment_expression "iVar7 = (int)piVar17 * 4" identifier = (binary_expression "(int)piVar17 * 4" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" if (parenthesized_expression "(param_3 == piVar17)" ( (binary_expression "param_3 == piVar17" identifier == identifier) )) (compound_statement "{\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }" { (expression_statement "piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);" (assignment_expression "piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" identifier = (cast_expression "(int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" * (pointer_expression "*(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" * (cast_expression "(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23[5] + (int)piVar21 * 0xc + 8)" ( (binary_expression "piVar23[5] + (int)piVar21 * 0xc + 8" (binary_expression "piVar23[5] + (int)piVar21 * 0xc" (subscript_expression "piVar23[5]" identifier [ number_literal ]) + (binary_expression "(int)piVar21 * 0xc" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))))) ;) (expression_statement "piVar18 = param_2 + 2;" (assignment_expression "piVar18 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar21;" (assignment_expression "piVar19 = piVar21" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0001d8b0(uVar20);" (assignment_expression "iVar7 = FUN_0001d8b0(uVar20)" identifier = (call_expression "FUN_0001d8b0(uVar20)" identifier (argument_list "(uVar20)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }" { (expression_statement "aiStack_94[1] = 1;" (assignment_expression "aiStack_94[1] = 1" (subscript_expression "aiStack_94[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[2] = 1;" (assignment_expression "aiStack_94[2] = 1" (subscript_expression "aiStack_94[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar24 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x20774))" ( (pointer_expression "**(code **)(puVar24 + 0x20774)" * (pointer_expression "*(code **)(puVar24 + 0x20774)" * (cast_expression "(code **)(puVar24 + 0x20774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x20774)" ( (binary_expression "puVar24 + 0x20774" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" if (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" ( (binary_expression "puStack_88 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }" { (expression_statement "aiStack_94[2] = 0;" (assignment_expression "aiStack_94[2] = 0" (subscript_expression "aiStack_94[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[0] = 0xc;" (assignment_expression "aiStack_94[0] = 0xc" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[1] = 0;" (assignment_expression "aiStack_94[1] = 0" (subscript_expression "aiStack_94[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" else (compound_statement "{\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" { (expression_statement "*puStack_88 = piVar21;" (assignment_expression "*puStack_88 = piVar21" (pointer_expression "*puStack_88" * identifier) = identifier) ;) (expression_statement "aiStack_94[0] = 0;" (assignment_expression "aiStack_94[0] = 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "piVar18 = aiStack_94 + 1;" (assignment_expression "piVar18 = aiStack_94 + 1" identifier = (binary_expression "aiStack_94 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = piStack_4c;" (assignment_expression "piVar19 = piStack_4c" identifier = identifier) ;) (expression_statement "piVar22 = (int *)&_gp_1;" (assignment_expression "piVar22 = (int *)&_gp_1" identifier = (cast_expression "(int *)&_gp_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) ;) (expression_statement "iVar12 = FUN_0001e5c8(piVar23,piVar18);" (assignment_expression "iVar12 = FUN_0001e5c8(piVar23,piVar18)" identifier = (call_expression "FUN_0001e5c8(piVar23,piVar18)" identifier (argument_list "(piVar23,piVar18)" ( identifier , identifier )))) ;) (expression_statement "iVar13 = FUN_0001e02c(param_2);" (assignment_expression "iVar13 = FUN_0001e02c(param_2)" identifier = (call_expression "FUN_0001e02c(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar24 + 0x207dc))(puStack_88);" (call_expression "(**(code **)(puVar24 + 0x207dc))(puStack_88)" (parenthesized_expression "(**(code **)(puVar24 + 0x207dc))" ( (pointer_expression "**(code **)(puVar24 + 0x207dc)" * (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) )) (argument_list "(puStack_88)" ( identifier ))) ;) (expression_statement "iVar7 = aiStack_94[0];" (assignment_expression "iVar7 = aiStack_94[0]" identifier = (subscript_expression "aiStack_94[0]" identifier [ number_literal ])) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (if_statement "if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;" if (parenthesized_expression "(((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0))" ( (binary_expression "((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)" (parenthesized_expression "((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0))" ( (binary_expression "(aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)" (parenthesized_expression "(aiStack_94[0] != 0)" ( (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(iVar7 = iVar12, iVar12 != 0)" ( (comma_expression "iVar7 = iVar12, iVar12 != 0" (assignment_expression "iVar7 = iVar12" identifier = identifier) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar7 = iVar13, iVar13 != 0)" ( (comma_expression "iVar7 = iVar13, iVar13 != 0" (assignment_expression "iVar7 = iVar13" identifier = identifier) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);" (assignment_expression "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar8)" ( (binary_expression "*(int *)(iVar5 + 0x74) + iVar8" (pointer_expression "*(int *)(iVar5 + 0x74)" * (cast_expression "(int *)(iVar5 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) + identifier) )))) ;) (goto_statement "goto LAB_0001fd9c;" goto statement_identifier ;) })) }) (else_clause "else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" else (compound_statement "{\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" { (expression_statement "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);" (assignment_expression "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7)" identifier = (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar12 = *piVar22;" (assignment_expression "iVar12 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);" (assignment_expression "piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4)" identifier = (pointer_expression "*(int **)(piVar23[3] + (int)piVar21 * 4)" * (cast_expression "(int **)(piVar23[3] + (int)piVar21 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23[3] + (int)piVar21 * 4)" ( (binary_expression "piVar23[3] + (int)piVar21 * 4" (subscript_expression "piVar23[3]" identifier [ number_literal ]) + (binary_expression "(int)piVar21 * 4" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }" { (expression_statement "aiStack_94[1] = 1;" (assignment_expression "aiStack_94[1] = 1" (subscript_expression "aiStack_94[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[2] = 1;" (assignment_expression "aiStack_94[2] = 1" (subscript_expression "aiStack_94[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar24 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x20774))" ( (pointer_expression "**(code **)(puVar24 + 0x20774)" * (pointer_expression "*(code **)(puVar24 + 0x20774)" * (cast_expression "(code **)(puVar24 + 0x20774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x20774)" ( (binary_expression "puVar24 + 0x20774" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }" if (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" ( (binary_expression "puStack_88 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }" { (labeled_statement "LAB_0001ff68:\n                  iVar7 = 0xc;" statement_identifier : (expression_statement "iVar7 = 0xc;" (assignment_expression "iVar7 = 0xc" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "*puStack_88 = piVar17;" (assignment_expression "*puStack_88 = piVar17" (pointer_expression "*puStack_88" * identifier) = identifier) ;) (expression_statement "aiStack_94[0] = 0;" (assignment_expression "aiStack_94[0] = 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0001fd48:\n                piVar19 = aiStack_94 + 1;" statement_identifier : (expression_statement "piVar19 = aiStack_94 + 1;" (assignment_expression "piVar19 = aiStack_94 + 1" identifier = (binary_expression "aiStack_94 + 1" identifier + number_literal)) ;)) (expression_statement "piVar18 = piVar23;" (assignment_expression "piVar18 = piVar23" identifier = identifier) ;) (expression_statement "iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);" (assignment_expression "iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94)" identifier = (call_expression "(*(code *)(iVar9 + -0x8c4))(aiStack_94)" (parenthesized_expression "(*(code *)(iVar9 + -0x8c4))" ( (pointer_expression "*(code *)(iVar9 + -0x8c4)" * (cast_expression "(code *)(iVar9 + -0x8c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x8c4)" ( (binary_expression "iVar9 + -0x8c4" identifier + number_literal) )))) )) (argument_list "(aiStack_94)" ( identifier )))) ;) (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) ;) (expression_statement "*piVar22 = iVar12;" (assignment_expression "*piVar22 = iVar12" (pointer_expression "*piVar22" * identifier) = identifier) ;) (expression_statement "(*pcVar25)(puStack_88);" (call_expression "(*pcVar25)(puStack_88)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puStack_88)" ( identifier ))) ;) (if_statement "if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;" if (parenthesized_expression "((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0))" ( (binary_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0" (pointer_expression "*(int *)(*(int *)(iVar5 + 100) + iVar7)" * (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) == number_literal) )) && (parenthesized_expression "(iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)" ( (comma_expression "iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0" (assignment_expression "iVar7 = aiStack_94[0]" identifier = (subscript_expression "aiStack_94[0]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar22, aiStack_94[0] != 0" (assignment_expression "piVar21 = piVar22" identifier = identifier) , (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) != number_literal))) ))) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" else (compound_statement "{\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" { (expression_statement "piVar18 = (int *)(iVar12 + 0xc);" (assignment_expression "piVar18 = (int *)(iVar12 + 0xc)" identifier = (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) ;) (expression_statement "piVar19 = piVar17;" (assignment_expression "piVar19 = piVar17" identifier = identifier) ;) (expression_statement "iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));" (assignment_expression "iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8))" identifier = (call_expression "FUN_0001d8b0(*(undefined4 *)(iVar12 + 8))" identifier (argument_list "(*(undefined4 *)(iVar12 + 8))" ( (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }" { (expression_statement "aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);" (assignment_expression "aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4)" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = (call_expression "(*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4)" (parenthesized_expression "(*(code *)(iVar10 + -4000))" ( (pointer_expression "*(code *)(iVar10 + -4000)" * (cast_expression "(code *)(iVar10 + -4000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -4000)" ( (binary_expression "iVar10 + -4000" identifier + number_literal) )))) )) (argument_list "(aiStack_94 + 1,iVar12 + 4)" ( (binary_expression "aiStack_94 + 1" identifier + number_literal) , (binary_expression "iVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);" (assignment_expression "iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1)" identifier = (call_expression "(*(code *)(iVar11 + -0x4558))(aiStack_94 + 1)" (parenthesized_expression "(*(code *)(iVar11 + -0x4558))" ( (pointer_expression "*(code *)(iVar11 + -0x4558)" * (cast_expression "(code *)(iVar11 + -0x4558)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x4558)" ( (binary_expression "iVar11 + -0x4558" identifier + number_literal) )))) )) (argument_list "(aiStack_94 + 1)" ( (binary_expression "aiStack_94 + 1" identifier + number_literal) )))) ;) (if_statement "if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" if (parenthesized_expression "(aiStack_94[0] == 0)" ( (binary_expression "aiStack_94[0] == 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }" { (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }" { (expression_statement "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);" (assignment_expression "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7)" identifier = (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) ;) (goto_statement "goto LAB_0001fd48;" goto statement_identifier ;) })) }) (else_clause "else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" else (compound_statement "{\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" { (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar25)(puStack_88);" (call_expression "(*pcVar25)(puStack_88)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puStack_88)" ( identifier ))) ;) (expression_statement "iVar7 = aiStack_94[0];" (assignment_expression "iVar7 = aiStack_94[0]" identifier = (subscript_expression "aiStack_94[0]" identifier [ number_literal ])) ;) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" identifier = identifier) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (if_statement "if (aiStack_94[0] == 0) goto LAB_0001ff68;" if (parenthesized_expression "(aiStack_94[0] == 0)" ( (binary_expression "aiStack_94[0] == 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0001ff68;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }))) }))) })) (expression_statement "pcVar1 = (char *)(puVar15 + 4);" (assignment_expression "pcVar1 = (char *)(puVar15 + 4)" identifier = (cast_expression "(char *)(puVar15 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (expression_statement "puVar15 = puVar15 + 5;" (assignment_expression "puVar15 = puVar15 + 5" identifier = (binary_expression "puVar15 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar1 != '\0')" ( (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;)) }))) })) })) (if_statement "if (iStack_84 == *piVar6) {\n    return iVar7;\n  }" if (parenthesized_expression "(iStack_84 == *piVar6)" ( (binary_expression "iStack_84 == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207b0);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207b0)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207b0)" * (cast_expression "(code **)(puVar24 + 0x207b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207b0)" ( (binary_expression "puVar24 + 0x207b0" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_84;" (assignment_expression "iVar5 = iStack_84" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *piVar18;" (assignment_expression "iVar7 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar22 = *(int **)(iVar5 + 0x54);" (assignment_expression "piVar22 = *(int **)(iVar5 + 0x54)" identifier = (pointer_expression "*(int **)(iVar5 + 0x54)" * (cast_expression "(int **)(iVar5 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);" do (compound_statement "{\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    }" { (while_statement "while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }" { (expression_statement "iVar9 = *(int *)(*piVar19 + iVar8 * 4);" (assignment_expression "iVar9 = *(int *)(*piVar19 + iVar8 * 4)" identifier = (pointer_expression "*(int *)(*piVar19 + iVar8 * 4)" * (cast_expression "(int *)(*piVar19 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar8 * 4)" ( (binary_expression "*piVar19 + iVar8 * 4" (pointer_expression "*piVar19" * identifier) + (binary_expression "iVar8 * 4" identifier * number_literal)) ))))) ;) (expression_statement "puVar14 = (uint *)(*piVar22 + iVar9 * 8);" (assignment_expression "puVar14 = (uint *)(*piVar22 + iVar9 * 8)" identifier = (cast_expression "(uint *)(*piVar22 + iVar9 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar9 * 8)" ( (binary_expression "*piVar22 + iVar9 * 8" (pointer_expression "*piVar22" * identifier) + (binary_expression "iVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;" if (parenthesized_expression "(((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0))" ( (binary_expression "((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)" (parenthesized_expression "((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20))" ( (binary_expression "(*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)" (parenthesized_expression "(*(char *)(puVar14 + 1) == '\b')" ( (binary_expression "*(char *)(puVar14 + 1) == '\b'" (pointer_expression "*(char *)(puVar14 + 1)" * (cast_expression "(char *)(puVar14 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) == (char_literal "'\b'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar16 = *puVar14, (int)uVar16 < 0x20)" ( (comma_expression "uVar16 = *puVar14, (int)uVar16 < 0x20" (assignment_expression "uVar16 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) , (binary_expression "(int)uVar16 < 0x20" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) && (parenthesized_expression "(((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)" ( (binary_expression "((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1)" ( (binary_expression "(uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1" (binary_expression "(uint)piVar22[0x14] >> (uVar16 & 0x1f)" (cast_expression "(uint)piVar22[0x14]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[0x14]" identifier [ number_literal ])) >> (parenthesized_expression "(uVar16 & 0x1f)" ( (binary_expression "uVar16 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (iVar7 <= iVar8) {\n          return 0;\n        }" if (parenthesized_expression "(iVar7 <= iVar8)" ( (binary_expression "iVar7 <= iVar8" identifier <= identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar10 = *(int *)(iVar5 + 0x7c);" (assignment_expression "iVar10 = *(int *)(iVar5 + 0x7c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x7c)" * (cast_expression "(int *)(iVar5 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x84);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x84)" identifier = (pointer_expression "*(int *)(iVar5 + 0x84)" * (cast_expression "(int *)(iVar5 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x84)" ( (binary_expression "iVar5 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }" if (parenthesized_expression "(iVar10 == *(int *)(iVar5 + 0x80))" ( (binary_expression "iVar10 == *(int *)(iVar5 + 0x80)" identifier == (pointer_expression "*(int *)(iVar5 + 0x80)" * (cast_expression "(int *)(iVar5 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x80)" ( (binary_expression "iVar5 + 0x80" identifier + number_literal) ))))) )) (compound_statement "{\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }" { (expression_statement "iVar11 = iVar10 << 1;" (assignment_expression "iVar11 = iVar10 << 1" identifier = (binary_expression "iVar10 << 1" identifier << number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);" (assignment_expression "iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3)" identifier = (call_expression "(**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3)" (parenthesized_expression "(**(code **)(pcVar25 + 0x20334))" ( (pointer_expression "**(code **)(pcVar25 + 0x20334)" * (pointer_expression "*(code **)(pcVar25 + 0x20334)" * (cast_expression "(code **)(pcVar25 + 0x20334)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x20334)" ( (binary_expression "pcVar25 + 0x20334" identifier + number_literal) ))))) )) (argument_list "(iVar7,iVar10 << 3)" ( identifier , (binary_expression "iVar10 << 3" identifier << number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n          return 0xc;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0xc;\n        }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "iVar10 = *(int *)(iVar5 + 0x7c);" (assignment_expression "iVar10 = *(int *)(iVar5 + 0x7c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x7c)" * (cast_expression "(int *)(iVar5 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar5 + 0x84) = iVar7;" (assignment_expression "*(int *)(iVar5 + 0x84) = iVar7" (pointer_expression "*(int *)(iVar5 + 0x84)" * (cast_expression "(int *)(iVar5 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x84)" ( (binary_expression "iVar5 + 0x84" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x80) = iVar11;" (assignment_expression "*(int *)(iVar5 + 0x80) = iVar11" (pointer_expression "*(int *)(iVar5 + 0x80)" * (cast_expression "(int *)(iVar5 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x80)" ( (binary_expression "iVar5 + 0x80" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);" (assignment_expression "puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar25 + 0x20288))(1,0x18)" (parenthesized_expression "(**(code **)(pcVar25 + 0x20288))" ( (pointer_expression "**(code **)(pcVar25 + 0x20288)" * (pointer_expression "*(code **)(pcVar25 + 0x20288)" * (cast_expression "(code **)(pcVar25 + 0x20288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x20288)" ( (binary_expression "pcVar25 + 0x20288" identifier + number_literal) ))))) )) (argument_list "(1,0x18)" ( number_literal , number_literal ))))) ;) (expression_statement "*(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;" (assignment_expression "*(undefined4 **)(iVar7 + iVar10 * 4) = puVar15" (pointer_expression "*(undefined4 **)(iVar7 + iVar10 * 4)" * (cast_expression "(undefined4 **)(iVar7 + iVar10 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + iVar10 * 4)" ( (binary_expression "iVar7 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xc;\n      }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "*(int *)(iVar5 + 0x7c) = iVar10 + 1;" (assignment_expression "*(int *)(iVar5 + 0x7c) = iVar10 + 1" (pointer_expression "*(int *)(iVar5 + 0x7c)" * (cast_expression "(int *)(iVar5 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar15[1] = iVar9;" (assignment_expression "puVar15[1] = iVar9" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar15 = piVar21;" (assignment_expression "*puVar15 = piVar21" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "iVar7 = *piVar18;" (assignment_expression "iVar7 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) }) while (parenthesized_expression "(iVar8 < iVar7)" ( (binary_expression "iVar8 < iVar7" identifier < identifier) )) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nreg_errcode_t merge_state_array(re_dfa_t *dfa,re_dfastate_t **dst,re_dfastate_t **src,Idx num)\n\n{\n  char *pcVar1;\n  bool bVar2;\n  re_dfa_t *prVar3;\n  undefined *puVar4;\n  int iVar5;\n  re_dfastate_t *prVar6;\n  int *piVar7;\n  bitset_word_t bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  Idx IVar14;\n  reg_errcode_t rVar15;\n  reg_errcode_t rVar16;\n  reg_errcode_t rVar17;\n  uint *puVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  re_dfa_t *prVar21;\n  Idx *pIVar22;\n  re_dfa_t *cur_nodes;\n  re_token_t *prVar23;\n  re_dfa_t *prVar24;\n  re_node_set *set;\n  re_dfastate_t **unaff_s0;\n  int iVar25;\n  re_dfa_t *prVar26;\n  re_node_set *unaff_s1;\n  re_node_set *unaff_s2;\n  re_node_set *unaff_s3;\n  re_state_table_entry *unaff_s4;\n  re_dfa_t *unaff_s5;\n  size_t *elem;\n  re_dfastate_t *unaff_s7;\n  re_dfa_t *prVar27;\n  undefined *puVar28;\n  re_dfa_t *unaff_s8;\n  code *pcVar29;\n  re_dfa_t *prStack_b8;\n  reg_errcode_t rStack_94;\n  re_token_t *prStack_90;\n  size_t sStack_8c;\n  undefined4 *puStack_88;\n  Idx *pIStack_84;\n  re_dfastate_t **pprStack_80;\n  re_node_set *prStack_7c;\n  re_node_set *prStack_78;\n  re_node_set *prStack_74;\n  re_state_table_entry *prStack_70;\n  re_dfa_t *prStack_6c;\n  re_dfastate_t *prStack_68;\n  re_dfastate_t *prStack_64;\n  re_dfa_t *prStack_60;\n  bin_tree_t *pbStack_5c;\n  re_dfa_t *prStack_4c;\n  reg_errcode_t err;\n  re_node_set merged_set;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  iVar5 = *(int *)PTR___stack_chk_guard_00040330;\n  prVar24 = (re_dfa_t *)num;\n  if (0 < num) {\n    unaff_s2 = (re_node_set *)0x0;\n    unaff_s8 = (re_dfa_t *)&merged_set;\n    unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0);\n    unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4);\n    unaff_s0 = dst;\n    unaff_s1 = (re_node_set *)src;\n    do {\n      while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;\n      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;\n      if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }\n      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n    } while ((re_node_set *)num != unaff_s2);\n  }\nLAB_0001fb14:\n  rVar17 = _REG_NOERROR;\n  num = (Idx)unaff_s3;\n  dfa = unaff_s5;\nLAB_0001fb18:\n  if (iVar5 == *(int *)puVar4) {\n    return rVar17;\n  }\n  pcVar29 = expand_bkref_cache;\n  puVar28 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar7 = *(int **)(puVar28 + 0x207d0);\n  prStack_68 = (re_dfastate_t *)puVar4;\n  pIStack_84 = (Idx *)*piVar7;\n  cur_nodes = (re_dfa_t *)0x0;\n  prVar27 = *(re_dfa_t **)(iVar5 + 0x6c);\n  prStack_b8 = (re_dfa_t *)src;\n  prVar26 = prVar24;\n  while ((int)cur_nodes < (int)prVar27) {\n    prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74);\n    prVar21 = (re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);\n    bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17];\n    while (prVar3 = prVar21, (int)src <= (int)bVar8) {\n      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;\n      prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);\n      prVar21 = prVar26;\n      prVar27 = prVar3;\n      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];\n    }\n    prVar26 = prVar3;\n    cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1);\n  }\nLAB_0001fc4c:\n  rVar17 = _REG_NOERROR;\n  pprStack_80 = unaff_s0;\n  prStack_7c = unaff_s1;\n  prStack_78 = unaff_s2;\n  prStack_74 = (re_node_set *)num;\n  prStack_70 = unaff_s4;\n  prStack_6c = dfa;\n  prStack_64 = unaff_s7;\n  prStack_60 = unaff_s8;\n  pbStack_5c = (bin_tree_t *)pcVar29;\n  prStack_4c = prVar24;\n  if ((int)cur_nodes < (int)*(re_dfa_t **)(iVar5 + 0x6c)) {\n    iVar9 = (int)cur_nodes * 0x14;\n    puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n    rVar17 = _REG_NOERROR;\n    if ((re_dfa_t *)src == (re_dfa_t *)puVar19[1]) {\n      elem = &((re_dfa_t *)dst)->nodes_len;\n      if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (pIStack_84 == (Idx *)*piVar7) {\n    return rVar17;\n  }\n  pcVar29 = *(code **)(puVar28 + 0x207b0);\n  pIVar22 = pIStack_84;\n  (*pcVar29)();\n  prVar23 = cur_nodes->nodes;\n  piVar7 = (int *)pIVar22[0x15];\n  if (0 < (int)prVar23) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }\n      iVar11 = pIVar22[0x1f];\n      iVar10 = pIVar22[0x21];\n      if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }\n      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;\n      if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }\n      pIVar22[0x1f] = iVar11 + 1;\n      puVar19[1] = iVar9;\n      *puVar19 = prVar26;\n      prVar23 = cur_nodes->nodes;\n    } while (iVar5 < (int)prVar23);\n  }\n  return _REG_NOERROR;\n}\n\n" comment (function_definition "reg_errcode_t merge_state_array(re_dfa_t *dfa,re_dfastate_t **dst,re_dfastate_t **src,Idx num)\n\n{\n  char *pcVar1;\n  bool bVar2;\n  re_dfa_t *prVar3;\n  undefined *puVar4;\n  int iVar5;\n  re_dfastate_t *prVar6;\n  int *piVar7;\n  bitset_word_t bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  Idx IVar14;\n  reg_errcode_t rVar15;\n  reg_errcode_t rVar16;\n  reg_errcode_t rVar17;\n  uint *puVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  re_dfa_t *prVar21;\n  Idx *pIVar22;\n  re_dfa_t *cur_nodes;\n  re_token_t *prVar23;\n  re_dfa_t *prVar24;\n  re_node_set *set;\n  re_dfastate_t **unaff_s0;\n  int iVar25;\n  re_dfa_t *prVar26;\n  re_node_set *unaff_s1;\n  re_node_set *unaff_s2;\n  re_node_set *unaff_s3;\n  re_state_table_entry *unaff_s4;\n  re_dfa_t *unaff_s5;\n  size_t *elem;\n  re_dfastate_t *unaff_s7;\n  re_dfa_t *prVar27;\n  undefined *puVar28;\n  re_dfa_t *unaff_s8;\n  code *pcVar29;\n  re_dfa_t *prStack_b8;\n  reg_errcode_t rStack_94;\n  re_token_t *prStack_90;\n  size_t sStack_8c;\n  undefined4 *puStack_88;\n  Idx *pIStack_84;\n  re_dfastate_t **pprStack_80;\n  re_node_set *prStack_7c;\n  re_node_set *prStack_78;\n  re_node_set *prStack_74;\n  re_state_table_entry *prStack_70;\n  re_dfa_t *prStack_6c;\n  re_dfastate_t *prStack_68;\n  re_dfastate_t *prStack_64;\n  re_dfa_t *prStack_60;\n  bin_tree_t *pbStack_5c;\n  re_dfa_t *prStack_4c;\n  reg_errcode_t err;\n  re_node_set merged_set;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  iVar5 = *(int *)PTR___stack_chk_guard_00040330;\n  prVar24 = (re_dfa_t *)num;\n  if (0 < num) {\n    unaff_s2 = (re_node_set *)0x0;\n    unaff_s8 = (re_dfa_t *)&merged_set;\n    unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0);\n    unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4);\n    unaff_s0 = dst;\n    unaff_s1 = (re_node_set *)src;\n    do {\n      while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;\n      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;\n      if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }\n      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n    } while ((re_node_set *)num != unaff_s2);\n  }\nLAB_0001fb14:\n  rVar17 = _REG_NOERROR;\n  num = (Idx)unaff_s3;\n  dfa = unaff_s5;\nLAB_0001fb18:\n  if (iVar5 == *(int *)puVar4) {\n    return rVar17;\n  }\n  pcVar29 = expand_bkref_cache;\n  puVar28 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar7 = *(int **)(puVar28 + 0x207d0);\n  prStack_68 = (re_dfastate_t *)puVar4;\n  pIStack_84 = (Idx *)*piVar7;\n  cur_nodes = (re_dfa_t *)0x0;\n  prVar27 = *(re_dfa_t **)(iVar5 + 0x6c);\n  prStack_b8 = (re_dfa_t *)src;\n  prVar26 = prVar24;\n  while ((int)cur_nodes < (int)prVar27) {\n    prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74);\n    prVar21 = (re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);\n    bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17];\n    while (prVar3 = prVar21, (int)src <= (int)bVar8) {\n      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;\n      prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);\n      prVar21 = prVar26;\n      prVar27 = prVar3;\n      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];\n    }\n    prVar26 = prVar3;\n    cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1);\n  }\nLAB_0001fc4c:\n  rVar17 = _REG_NOERROR;\n  pprStack_80 = unaff_s0;\n  prStack_7c = unaff_s1;\n  prStack_78 = unaff_s2;\n  prStack_74 = (re_node_set *)num;\n  prStack_70 = unaff_s4;\n  prStack_6c = dfa;\n  prStack_64 = unaff_s7;\n  prStack_60 = unaff_s8;\n  pbStack_5c = (bin_tree_t *)pcVar29;\n  prStack_4c = prVar24;\n  if ((int)cur_nodes < (int)*(re_dfa_t **)(iVar5 + 0x6c)) {\n    iVar9 = (int)cur_nodes * 0x14;\n    puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n    rVar17 = _REG_NOERROR;\n    if ((re_dfa_t *)src == (re_dfa_t *)puVar19[1]) {\n      elem = &((re_dfa_t *)dst)->nodes_len;\n      if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (pIStack_84 == (Idx *)*piVar7) {\n    return rVar17;\n  }\n  pcVar29 = *(code **)(puVar28 + 0x207b0);\n  pIVar22 = pIStack_84;\n  (*pcVar29)();\n  prVar23 = cur_nodes->nodes;\n  piVar7 = (int *)pIVar22[0x15];\n  if (0 < (int)prVar23) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }\n      iVar11 = pIVar22[0x1f];\n      iVar10 = pIVar22[0x21];\n      if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }\n      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;\n      if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }\n      pIVar22[0x1f] = iVar11 + 1;\n      puVar19[1] = iVar9;\n      *puVar19 = prVar26;\n      prVar23 = cur_nodes->nodes;\n    } while (iVar5 < (int)prVar23);\n  }\n  return _REG_NOERROR;\n}" type_identifier (function_declarator "merge_state_array(re_dfa_t *dfa,re_dfastate_t **dst,re_dfastate_t **src,Idx num)" identifier (parameter_list "(re_dfa_t *dfa,re_dfastate_t **dst,re_dfastate_t **src,Idx num)" ( (parameter_declaration "re_dfa_t *dfa" type_identifier (pointer_declarator "*dfa" * identifier)) , (parameter_declaration "re_dfastate_t **dst" type_identifier (pointer_declarator "**dst" * (pointer_declarator "*dst" * identifier))) , (parameter_declaration "re_dfastate_t **src" type_identifier (pointer_declarator "**src" * (pointer_declarator "*src" * identifier))) , (parameter_declaration "Idx num" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  bool bVar2;\n  re_dfa_t *prVar3;\n  undefined *puVar4;\n  int iVar5;\n  re_dfastate_t *prVar6;\n  int *piVar7;\n  bitset_word_t bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  Idx IVar14;\n  reg_errcode_t rVar15;\n  reg_errcode_t rVar16;\n  reg_errcode_t rVar17;\n  uint *puVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  re_dfa_t *prVar21;\n  Idx *pIVar22;\n  re_dfa_t *cur_nodes;\n  re_token_t *prVar23;\n  re_dfa_t *prVar24;\n  re_node_set *set;\n  re_dfastate_t **unaff_s0;\n  int iVar25;\n  re_dfa_t *prVar26;\n  re_node_set *unaff_s1;\n  re_node_set *unaff_s2;\n  re_node_set *unaff_s3;\n  re_state_table_entry *unaff_s4;\n  re_dfa_t *unaff_s5;\n  size_t *elem;\n  re_dfastate_t *unaff_s7;\n  re_dfa_t *prVar27;\n  undefined *puVar28;\n  re_dfa_t *unaff_s8;\n  code *pcVar29;\n  re_dfa_t *prStack_b8;\n  reg_errcode_t rStack_94;\n  re_token_t *prStack_90;\n  size_t sStack_8c;\n  undefined4 *puStack_88;\n  Idx *pIStack_84;\n  re_dfastate_t **pprStack_80;\n  re_node_set *prStack_7c;\n  re_node_set *prStack_78;\n  re_node_set *prStack_74;\n  re_state_table_entry *prStack_70;\n  re_dfa_t *prStack_6c;\n  re_dfastate_t *prStack_68;\n  re_dfastate_t *prStack_64;\n  re_dfa_t *prStack_60;\n  bin_tree_t *pbStack_5c;\n  re_dfa_t *prStack_4c;\n  reg_errcode_t err;\n  re_node_set merged_set;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  iVar5 = *(int *)PTR___stack_chk_guard_00040330;\n  prVar24 = (re_dfa_t *)num;\n  if (0 < num) {\n    unaff_s2 = (re_node_set *)0x0;\n    unaff_s8 = (re_dfa_t *)&merged_set;\n    unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0);\n    unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4);\n    unaff_s0 = dst;\n    unaff_s1 = (re_node_set *)src;\n    do {\n      while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;\n      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;\n      if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }\n      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n    } while ((re_node_set *)num != unaff_s2);\n  }\nLAB_0001fb14:\n  rVar17 = _REG_NOERROR;\n  num = (Idx)unaff_s3;\n  dfa = unaff_s5;\nLAB_0001fb18:\n  if (iVar5 == *(int *)puVar4) {\n    return rVar17;\n  }\n  pcVar29 = expand_bkref_cache;\n  puVar28 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar7 = *(int **)(puVar28 + 0x207d0);\n  prStack_68 = (re_dfastate_t *)puVar4;\n  pIStack_84 = (Idx *)*piVar7;\n  cur_nodes = (re_dfa_t *)0x0;\n  prVar27 = *(re_dfa_t **)(iVar5 + 0x6c);\n  prStack_b8 = (re_dfa_t *)src;\n  prVar26 = prVar24;\n  while ((int)cur_nodes < (int)prVar27) {\n    prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74);\n    prVar21 = (re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);\n    bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17];\n    while (prVar3 = prVar21, (int)src <= (int)bVar8) {\n      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;\n      prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);\n      prVar21 = prVar26;\n      prVar27 = prVar3;\n      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];\n    }\n    prVar26 = prVar3;\n    cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1);\n  }\nLAB_0001fc4c:\n  rVar17 = _REG_NOERROR;\n  pprStack_80 = unaff_s0;\n  prStack_7c = unaff_s1;\n  prStack_78 = unaff_s2;\n  prStack_74 = (re_node_set *)num;\n  prStack_70 = unaff_s4;\n  prStack_6c = dfa;\n  prStack_64 = unaff_s7;\n  prStack_60 = unaff_s8;\n  pbStack_5c = (bin_tree_t *)pcVar29;\n  prStack_4c = prVar24;\n  if ((int)cur_nodes < (int)*(re_dfa_t **)(iVar5 + 0x6c)) {\n    iVar9 = (int)cur_nodes * 0x14;\n    puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n    rVar17 = _REG_NOERROR;\n    if ((re_dfa_t *)src == (re_dfa_t *)puVar19[1]) {\n      elem = &((re_dfa_t *)dst)->nodes_len;\n      if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (pIStack_84 == (Idx *)*piVar7) {\n    return rVar17;\n  }\n  pcVar29 = *(code **)(puVar28 + 0x207b0);\n  pIVar22 = pIStack_84;\n  (*pcVar29)();\n  prVar23 = cur_nodes->nodes;\n  piVar7 = (int *)pIVar22[0x15];\n  if (0 < (int)prVar23) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }\n      iVar11 = pIVar22[0x1f];\n      iVar10 = pIVar22[0x21];\n      if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }\n      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;\n      if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }\n      pIVar22[0x1f] = iVar11 + 1;\n      puVar19[1] = iVar9;\n      *puVar19 = prVar26;\n      prVar23 = cur_nodes->nodes;\n    } while (iVar5 < (int)prVar23);\n  }\n  return _REG_NOERROR;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "re_dfa_t *prVar3;" type_identifier (pointer_declarator "*prVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "re_dfastate_t *prVar6;" type_identifier (pointer_declarator "*prVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "bitset_word_t bVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "Idx IVar14;" type_identifier identifier ;) (declaration "reg_errcode_t rVar15;" type_identifier identifier ;) (declaration "reg_errcode_t rVar16;" type_identifier identifier ;) (declaration "reg_errcode_t rVar17;" type_identifier identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "re_dfa_t *prVar21;" type_identifier (pointer_declarator "*prVar21" * identifier) ;) (declaration "Idx *pIVar22;" type_identifier (pointer_declarator "*pIVar22" * identifier) ;) (declaration "re_dfa_t *cur_nodes;" type_identifier (pointer_declarator "*cur_nodes" * identifier) ;) (declaration "re_token_t *prVar23;" type_identifier (pointer_declarator "*prVar23" * identifier) ;) (declaration "re_dfa_t *prVar24;" type_identifier (pointer_declarator "*prVar24" * identifier) ;) (declaration "re_node_set *set;" type_identifier (pointer_declarator "*set" * identifier) ;) (declaration "re_dfastate_t **unaff_s0;" type_identifier (pointer_declarator "**unaff_s0" * (pointer_declarator "*unaff_s0" * identifier)) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "re_dfa_t *prVar26;" type_identifier (pointer_declarator "*prVar26" * identifier) ;) (declaration "re_node_set *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "re_node_set *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "re_node_set *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "re_state_table_entry *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "re_dfa_t *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "size_t *elem;" primitive_type (pointer_declarator "*elem" * identifier) ;) (declaration "re_dfastate_t *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "re_dfa_t *prVar27;" type_identifier (pointer_declarator "*prVar27" * identifier) ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "re_dfa_t *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "re_dfa_t *prStack_b8;" type_identifier (pointer_declarator "*prStack_b8" * identifier) ;) (declaration "reg_errcode_t rStack_94;" type_identifier identifier ;) (declaration "re_token_t *prStack_90;" type_identifier (pointer_declarator "*prStack_90" * identifier) ;) (declaration "size_t sStack_8c;" primitive_type identifier ;) (declaration "undefined4 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "Idx *pIStack_84;" type_identifier (pointer_declarator "*pIStack_84" * identifier) ;) (declaration "re_dfastate_t **pprStack_80;" type_identifier (pointer_declarator "**pprStack_80" * (pointer_declarator "*pprStack_80" * identifier)) ;) (declaration "re_node_set *prStack_7c;" type_identifier (pointer_declarator "*prStack_7c" * identifier) ;) (declaration "re_node_set *prStack_78;" type_identifier (pointer_declarator "*prStack_78" * identifier) ;) (declaration "re_node_set *prStack_74;" type_identifier (pointer_declarator "*prStack_74" * identifier) ;) (declaration "re_state_table_entry *prStack_70;" type_identifier (pointer_declarator "*prStack_70" * identifier) ;) (declaration "re_dfa_t *prStack_6c;" type_identifier (pointer_declarator "*prStack_6c" * identifier) ;) (declaration "re_dfastate_t *prStack_68;" type_identifier (pointer_declarator "*prStack_68" * identifier) ;) (declaration "re_dfastate_t *prStack_64;" type_identifier (pointer_declarator "*prStack_64" * identifier) ;) (declaration "re_dfa_t *prStack_60;" type_identifier (pointer_declarator "*prStack_60" * identifier) ;) (declaration "bin_tree_t *pbStack_5c;" type_identifier (pointer_declarator "*pbStack_5c" * identifier) ;) (declaration "re_dfa_t *prStack_4c;" type_identifier (pointer_declarator "*prStack_4c" * identifier) ;) (declaration "reg_errcode_t err;" type_identifier identifier ;) (declaration "re_node_set merged_set;" type_identifier identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00040330;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00040330" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)PTR___stack_chk_guard_00040330;" (assignment_expression "iVar5 = *(int *)PTR___stack_chk_guard_00040330" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00040330" * (cast_expression "(int *)PTR___stack_chk_guard_00040330" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "prVar24 = (re_dfa_t *)num;" (assignment_expression "prVar24 = (re_dfa_t *)num" identifier = (cast_expression "(re_dfa_t *)num" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (0 < num) {\n    unaff_s2 = (re_node_set *)0x0;\n    unaff_s8 = (re_dfa_t *)&merged_set;\n    unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0);\n    unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4);\n    unaff_s0 = dst;\n    unaff_s1 = (re_node_set *)src;\n    do {\n      while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;\n      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;\n      if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }\n      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n    } while ((re_node_set *)num != unaff_s2);\n  }" if (parenthesized_expression "(0 < num)" ( (binary_expression "0 < num" number_literal < identifier) )) (compound_statement "{\n    unaff_s2 = (re_node_set *)0x0;\n    unaff_s8 = (re_dfa_t *)&merged_set;\n    unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0);\n    unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4);\n    unaff_s0 = dst;\n    unaff_s1 = (re_node_set *)src;\n    do {\n      while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;\n      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;\n      if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }\n      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n    } while ((re_node_set *)num != unaff_s2);\n  }" { (expression_statement "unaff_s2 = (re_node_set *)0x0;" (assignment_expression "unaff_s2 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8 = (re_dfa_t *)&merged_set;" (assignment_expression "unaff_s8 = (re_dfa_t *)&merged_set" identifier = (cast_expression "(re_dfa_t *)&merged_set" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&merged_set" & identifier))) ;) (expression_statement "unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0);" (assignment_expression "unaff_s4 = (re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0)" identifier = (cast_expression "(re_state_table_entry *)(PTR_LAB_000401f4 + -0xed0)" ( (type_descriptor "re_state_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000401f4 + -0xed0)" ( (binary_expression "PTR_LAB_000401f4 + -0xed0" identifier + number_literal) )))) ;) (expression_statement "unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4);" (assignment_expression "unaff_s7 = (re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4)" identifier = (cast_expression "(re_dfastate_t *)(PTR_LAB_000401f4 + -0x8c4)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000401f4 + -0x8c4)" ( (binary_expression "PTR_LAB_000401f4 + -0x8c4" identifier + number_literal) )))) ;) (expression_statement "unaff_s0 = dst;" (assignment_expression "unaff_s0 = dst" identifier = identifier) ;) (expression_statement "unaff_s1 = (re_node_set *)src;" (assignment_expression "unaff_s1 = (re_node_set *)src" identifier = (cast_expression "(re_node_set *)src" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;\n      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;\n      if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }\n      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n    } while ((re_node_set *)num != unaff_s2);" do (compound_statement "{\n      while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;\n      src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;\n      if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }\n      unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n    }" { (while_statement "while( true ) {\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        dst = (re_dfastate_t **)*unaff_s0;\n        src = (re_dfastate_t **)unaff_s1->alloc;\n        unaff_s3 = (re_node_set *)num;\n        unaff_s5 = dfa;\n        if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;\n        unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);\n        *unaff_s0 = (re_dfastate_t *)src;\n        unaff_s1 = (re_node_set *)&unaff_s1->nelem;\n        unaff_s0 = unaff_s0 + 1;\n        if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;\n      }" { (expression_statement "dst = (re_dfastate_t **)*unaff_s0;" (assignment_expression "dst = (re_dfastate_t **)*unaff_s0" identifier = (cast_expression "(re_dfastate_t **)*unaff_s0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*unaff_s0" * identifier))) ;) (expression_statement "src = (re_dfastate_t **)unaff_s1->alloc;" (assignment_expression "src = (re_dfastate_t **)unaff_s1->alloc" identifier = (cast_expression "(re_dfastate_t **)unaff_s1->alloc" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "unaff_s1->alloc" identifier -> field_identifier))) ;) (expression_statement "unaff_s3 = (re_node_set *)num;" (assignment_expression "unaff_s3 = (re_node_set *)num" identifier = (cast_expression "(re_node_set *)num" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s5 = dfa;" (assignment_expression "unaff_s5 = dfa" identifier = identifier) ;) (if_statement "if ((re_dfa_t *)dst != (re_dfa_t *)0x0) break;" if (parenthesized_expression "((re_dfa_t *)dst != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)dst != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)dst" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);" (assignment_expression "unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s2->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s2->alloc + 1)" ( (binary_expression "(int)&unaff_s2->alloc + 1" (cast_expression "(int)&unaff_s2->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2->alloc" & (field_expression "unaff_s2->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*unaff_s0 = (re_dfastate_t *)src;" (assignment_expression "*unaff_s0 = (re_dfastate_t *)src" (pointer_expression "*unaff_s0" * identifier) = (cast_expression "(re_dfastate_t *)src" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s1 = (re_node_set *)&unaff_s1->nelem;" (assignment_expression "unaff_s1 = (re_node_set *)&unaff_s1->nelem" identifier = (cast_expression "(re_node_set *)&unaff_s1->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->nelem" & (field_expression "unaff_s1->nelem" identifier -> field_identifier)))) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (if_statement "if ((re_node_set *)num == unaff_s2) goto LAB_0001fb14;" if (parenthesized_expression "((re_node_set *)num == unaff_s2)" ( (binary_expression "(re_node_set *)num == unaff_s2" (cast_expression "(re_node_set *)num" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (goto_statement "goto LAB_0001fb14;" goto statement_identifier ;)) })) (expression_statement "bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0;" (assignment_expression "bVar2 = (re_dfa_t *)src != (re_dfa_t *)0x0" identifier = (binary_expression "(re_dfa_t *)src != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)src" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc;" (assignment_expression "src = (re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc" identifier = (cast_expression "(re_dfastate_t **)&((re_dfa_t *)src)->nodes_alloc" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&((re_dfa_t *)src)->nodes_alloc" & (field_expression "((re_dfa_t *)src)->nodes_alloc" (parenthesized_expression "((re_dfa_t *)src)" ( (cast_expression "(re_dfa_t *)src" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) ;) (if_statement "if (bVar2) {\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;\n        err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n        dst = (re_dfastate_t **)dfa;\n        src = (re_dfastate_t **)unaff_s8;\n        prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);\n        puVar28 = PTR_free_0004033c;\n        *unaff_s0 = prVar6;\n        (*(code *)puVar28)(merged_set.elems);\n        rVar17 = err;\n        if (err != _REG_NOERROR) goto LAB_0001fb18;\n      }" { (expression_statement "dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc;" (assignment_expression "dst = (re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc" identifier = (cast_expression "(re_dfastate_t **)&((re_dfa_t *)dst)->nodes_alloc" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&((re_dfa_t *)dst)->nodes_alloc" & (field_expression "((re_dfa_t *)dst)->nodes_alloc" (parenthesized_expression "((re_dfa_t *)dst)" ( (cast_expression "(re_dfa_t *)dst" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) ;) (expression_statement "err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src);" (assignment_expression "err = re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src)" identifier = (call_expression "re_node_set_init_union((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src)" identifier (argument_list "((re_node_set *)unaff_s8,(re_node_set *)dst,(re_node_set *)src)" ( (cast_expression "(re_node_set *)unaff_s8" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)dst" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)src" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "rVar17 = err;" (assignment_expression "rVar17 = err" identifier = identifier) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_0001fb18;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_0001fb18;" goto statement_identifier ;)) (expression_statement "dst = (re_dfastate_t **)dfa;" (assignment_expression "dst = (re_dfastate_t **)dfa" identifier = (cast_expression "(re_dfastate_t **)dfa" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "src = (re_dfastate_t **)unaff_s8;" (assignment_expression "src = (re_dfastate_t **)unaff_s8" identifier = (cast_expression "(re_dfastate_t **)unaff_s8" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8);" (assignment_expression "prVar6 = re_acquire_state(&err,dfa,(re_node_set *)unaff_s8)" identifier = (call_expression "re_acquire_state(&err,dfa,(re_node_set *)unaff_s8)" identifier (argument_list "(&err,dfa,(re_node_set *)unaff_s8)" ( (pointer_expression "&err" & identifier) , identifier , (cast_expression "(re_node_set *)unaff_s8" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "puVar28 = PTR_free_0004033c;" (assignment_expression "puVar28 = PTR_free_0004033c" identifier = identifier) ;) (expression_statement "*unaff_s0 = prVar6;" (assignment_expression "*unaff_s0 = prVar6" (pointer_expression "*unaff_s0" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar28)(merged_set.elems);" (call_expression "(*(code *)puVar28)(merged_set.elems)" (parenthesized_expression "(*(code *)puVar28)" ( (pointer_expression "*(code *)puVar28" * (cast_expression "(code *)puVar28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(merged_set.elems)" ( (field_expression "merged_set.elems" identifier . field_identifier) ))) ;) (expression_statement "rVar17 = err;" (assignment_expression "rVar17 = err" identifier = identifier) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_0001fb18;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_0001fb18;" goto statement_identifier ;)) })) (expression_statement "unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1);" (assignment_expression "unaff_s2 = (re_node_set *)((int)&unaff_s2->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&unaff_s2->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s2->alloc + 1)" ( (binary_expression "(int)&unaff_s2->alloc + 1" (cast_expression "(int)&unaff_s2->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2->alloc" & (field_expression "unaff_s2->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = (re_node_set *)&unaff_s1->nelem;" (assignment_expression "unaff_s1 = (re_node_set *)&unaff_s1->nelem" identifier = (cast_expression "(re_node_set *)&unaff_s1->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->nelem" & (field_expression "unaff_s1->nelem" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "((re_node_set *)num != unaff_s2)" ( (binary_expression "(re_node_set *)num != unaff_s2" (cast_expression "(re_node_set *)num" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) (labeled_statement "LAB_0001fb14:\n  rVar17 = _REG_NOERROR;" statement_identifier : (expression_statement "rVar17 = _REG_NOERROR;" (assignment_expression "rVar17 = _REG_NOERROR" identifier = identifier) ;)) (expression_statement "num = (Idx)unaff_s3;" (assignment_expression "num = (Idx)unaff_s3" identifier = (cast_expression "(Idx)unaff_s3" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "dfa = unaff_s5;" (assignment_expression "dfa = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_0001fb18:\n  if (iVar5 == *(int *)puVar4) {\n    return rVar17;\n  }" statement_identifier : (if_statement "if (iVar5 == *(int *)puVar4) {\n    return rVar17;\n  }" if (parenthesized_expression "(iVar5 == *(int *)puVar4)" ( (binary_expression "iVar5 == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return rVar17;\n  }" { (return_statement "return rVar17;" return identifier ;) }))) (expression_statement "pcVar29 = expand_bkref_cache;" (assignment_expression "pcVar29 = expand_bkref_cache" identifier = identifier) ;) (expression_statement "puVar28 = PTR___stack_chk_fail_00040310;" (assignment_expression "puVar28 = PTR___stack_chk_fail_00040310" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00040310)();" (call_expression "(*(code *)PTR___stack_chk_fail_00040310)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00040310)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00040310" * (cast_expression "(code *)PTR___stack_chk_fail_00040310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar28 + 0x207d0);" (assignment_expression "piVar7 = *(int **)(puVar28 + 0x207d0)" identifier = (pointer_expression "*(int **)(puVar28 + 0x207d0)" * (cast_expression "(int **)(puVar28 + 0x207d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x207d0)" ( (binary_expression "puVar28 + 0x207d0" identifier + number_literal) ))))) ;) (expression_statement "prStack_68 = (re_dfastate_t *)puVar4;" (assignment_expression "prStack_68 = (re_dfastate_t *)puVar4" identifier = (cast_expression "(re_dfastate_t *)puVar4" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pIStack_84 = (Idx *)*piVar7;" (assignment_expression "pIStack_84 = (Idx *)*piVar7" identifier = (cast_expression "(Idx *)*piVar7" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (expression_statement "cur_nodes = (re_dfa_t *)0x0;" (assignment_expression "cur_nodes = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar27 = *(re_dfa_t **)(iVar5 + 0x6c);" (assignment_expression "prVar27 = *(re_dfa_t **)(iVar5 + 0x6c)" identifier = (pointer_expression "*(re_dfa_t **)(iVar5 + 0x6c)" * (cast_expression "(re_dfa_t **)(iVar5 + 0x6c)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "prStack_b8 = (re_dfa_t *)src;" (assignment_expression "prStack_b8 = (re_dfa_t *)src" identifier = (cast_expression "(re_dfa_t *)src" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar26 = prVar24;" (assignment_expression "prVar26 = prVar24" identifier = identifier) ;) (while_statement "while ((int)cur_nodes < (int)prVar27) {\n    prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74);\n    prVar21 = (re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);\n    bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17];\n    while (prVar3 = prVar21, (int)src <= (int)bVar8) {\n      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;\n      prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);\n      prVar21 = prVar26;\n      prVar27 = prVar3;\n      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];\n    }\n    prVar26 = prVar3;\n    cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1);\n  }" while (parenthesized_expression "((int)cur_nodes < (int)prVar27)" ( (binary_expression "(int)cur_nodes < (int)prVar27" (cast_expression "(int)cur_nodes" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74);\n    prVar21 = (re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);\n    bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17];\n    while (prVar3 = prVar21, (int)src <= (int)bVar8) {\n      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;\n      prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);\n      prVar21 = prVar26;\n      prVar27 = prVar3;\n      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];\n    }\n    prVar26 = prVar3;\n    cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1);\n  }" { (expression_statement "prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74);" (assignment_expression "prStack_b8 = *(re_dfa_t **)(iVar5 + 0x74)" identifier = (pointer_expression "*(re_dfa_t **)(iVar5 + 0x74)" * (cast_expression "(re_dfa_t **)(iVar5 + 0x74)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "prVar21 = (re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);" (assignment_expression "prVar21 = (re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2)" identifier = (cast_expression "(re_dfa_t *)\n              (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2)" ( (binary_expression "((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2" (parenthesized_expression "((int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U)" ( (binary_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8) +\n               (int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char + 0xffffffe8" (field_expression "((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))\n                      ->word_char" (parenthesized_expression "((re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar27->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar27->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar27->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar27->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar27->word_char + -0x18)" ( (binary_expression "prVar27->word_char + -0x18" (field_expression "prVar27->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                    (((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char + -0x18" (field_expression "((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))\n                     ->word_char" (parenthesized_expression "((re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(cur_nodes->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(cur_nodes->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cur_nodes->word_char + -0x18)" ( (binary_expression "cur_nodes->word_char + -0x18" (field_expression "cur_nodes->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )) / number_literal) )))) ;) (expression_statement "bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17];" (assignment_expression "bVar8 = prStack_b8->word_char[(int)prVar21 * 5 + -0x17]" identifier = (subscript_expression "prStack_b8->word_char[(int)prVar21 * 5 + -0x17]" (field_expression "prStack_b8->word_char" identifier -> field_identifier) [ (binary_expression "(int)prVar21 * 5 + -0x17" (binary_expression "(int)prVar21 * 5" (cast_expression "(int)prVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) (while_statement "while (prVar3 = prVar21, (int)src <= (int)bVar8) {\n      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;\n      prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);\n      prVar21 = prVar26;\n      prVar27 = prVar3;\n      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];\n    }" while (parenthesized_expression "(prVar3 = prVar21, (int)src <= (int)bVar8)" ( (comma_expression "prVar3 = prVar21, (int)src <= (int)bVar8" (assignment_expression "prVar3 = prVar21" identifier = identifier) , (binary_expression "(int)src <= (int)bVar8" (cast_expression "(int)src" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)bVar8" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;\n      prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);\n      prVar21 = prVar26;\n      prVar27 = prVar3;\n      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];\n    }" { (if_statement "if ((int)prVar3 <= (int)cur_nodes) goto LAB_0001fc4c;" if (parenthesized_expression "((int)prVar3 <= (int)cur_nodes)" ( (binary_expression "(int)prVar3 <= (int)cur_nodes" (cast_expression "(int)prVar3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)cur_nodes" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001fc4c;" goto statement_identifier ;)) (expression_statement "prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2);" (assignment_expression "prVar26 = (re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2)" identifier = (cast_expression "(re_dfa_t *)\n                (((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2)" ( (binary_expression "((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U) / 2" (parenthesized_expression "((int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U)" ( (binary_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8) +\n                 (int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char + 0xffffffe8" (field_expression "((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))\n                        ->word_char" (parenthesized_expression "((re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar3->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar3->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar3->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar3->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar3->word_char + -0x18)" ( (binary_expression "prVar3->word_char + -0x18" (field_expression "prVar3->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18))" ( (cast_expression "(re_dfa_t *)\n                      (((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18)" ( (binary_expression "((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char\n                      + -0x18" (field_expression "((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                       (((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(cur_nodes->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(cur_nodes->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(cur_nodes->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cur_nodes->word_char + -0x18)" ( (binary_expression "cur_nodes->word_char + -0x18" (field_expression "cur_nodes->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )) / number_literal) )))) ;) (expression_statement "prVar21 = prVar26;" (assignment_expression "prVar21 = prVar26" identifier = identifier) ;) (expression_statement "prVar27 = prVar3;" (assignment_expression "prVar27 = prVar3" identifier = identifier) ;) (expression_statement "bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];" (assignment_expression "bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17]" identifier = (subscript_expression "prStack_b8->word_char[(int)prVar26 * 5 + -0x17]" (field_expression "prStack_b8->word_char" identifier -> field_identifier) [ (binary_expression "(int)prVar26 * 5 + -0x17" (binary_expression "(int)prVar26 * 5" (cast_expression "(int)prVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) })) (expression_statement "prVar26 = prVar3;" (assignment_expression "prVar26 = prVar3" identifier = identifier) ;) (expression_statement "cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1);" (assignment_expression "cur_nodes = (re_dfa_t *)((int)&prVar3->nodes + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar3->nodes + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar3->nodes + 1)" ( (binary_expression "(int)&prVar3->nodes + 1" (cast_expression "(int)&prVar3->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar3->nodes" & (field_expression "prVar3->nodes" identifier -> field_identifier))) + number_literal) )))) ;) })) (labeled_statement "LAB_0001fc4c:\n  rVar17 = _REG_NOERROR;" statement_identifier : (expression_statement "rVar17 = _REG_NOERROR;" (assignment_expression "rVar17 = _REG_NOERROR" identifier = identifier) ;)) (expression_statement "pprStack_80 = unaff_s0;" (assignment_expression "pprStack_80 = unaff_s0" identifier = identifier) ;) (expression_statement "prStack_7c = unaff_s1;" (assignment_expression "prStack_7c = unaff_s1" identifier = identifier) ;) (expression_statement "prStack_78 = unaff_s2;" (assignment_expression "prStack_78 = unaff_s2" identifier = identifier) ;) (expression_statement "prStack_74 = (re_node_set *)num;" (assignment_expression "prStack_74 = (re_node_set *)num" identifier = (cast_expression "(re_node_set *)num" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prStack_70 = unaff_s4;" (assignment_expression "prStack_70 = unaff_s4" identifier = identifier) ;) (expression_statement "prStack_6c = dfa;" (assignment_expression "prStack_6c = dfa" identifier = identifier) ;) (expression_statement "prStack_64 = unaff_s7;" (assignment_expression "prStack_64 = unaff_s7" identifier = identifier) ;) (expression_statement "prStack_60 = unaff_s8;" (assignment_expression "prStack_60 = unaff_s8" identifier = identifier) ;) (expression_statement "pbStack_5c = (bin_tree_t *)pcVar29;" (assignment_expression "pbStack_5c = (bin_tree_t *)pcVar29" identifier = (cast_expression "(bin_tree_t *)pcVar29" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prStack_4c = prVar24;" (assignment_expression "prStack_4c = prVar24" identifier = identifier) ;) (if_statement "if ((int)cur_nodes < (int)*(re_dfa_t **)(iVar5 + 0x6c)) {\n    iVar9 = (int)cur_nodes * 0x14;\n    puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n    rVar17 = _REG_NOERROR;\n    if ((re_dfa_t *)src == (re_dfa_t *)puVar19[1]) {\n      elem = &((re_dfa_t *)dst)->nodes_len;\n      if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" if (parenthesized_expression "((int)cur_nodes < (int)*(re_dfa_t **)(iVar5 + 0x6c))" ( (binary_expression "(int)cur_nodes < (int)*(re_dfa_t **)(iVar5 + 0x6c)" (cast_expression "(int)cur_nodes" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(re_dfa_t **)(iVar5 + 0x6c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(re_dfa_t **)(iVar5 + 0x6c)" * (cast_expression "(re_dfa_t **)(iVar5 + 0x6c)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) )))))) )) (compound_statement "{\n    iVar9 = (int)cur_nodes * 0x14;\n    puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n    rVar17 = _REG_NOERROR;\n    if ((re_dfa_t *)src == (re_dfa_t *)puVar19[1]) {\n      elem = &((re_dfa_t *)dst)->nodes_len;\n      if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" { (expression_statement "iVar9 = (int)cur_nodes * 0x14;" (assignment_expression "iVar9 = (int)cur_nodes * 0x14" identifier = (binary_expression "(int)cur_nodes * 0x14" (cast_expression "(int)cur_nodes" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);" (assignment_expression "puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar9)" ( (binary_expression "*(int *)(iVar5 + 0x74) + iVar9" (pointer_expression "*(int *)(iVar5 + 0x74)" * (cast_expression "(int *)(iVar5 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "rVar17 = _REG_NOERROR;" (assignment_expression "rVar17 = _REG_NOERROR" identifier = identifier) ;) (if_statement "if ((re_dfa_t *)src == (re_dfa_t *)puVar19[1]) {\n      elem = &((re_dfa_t *)dst)->nodes_len;\n      if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" if (parenthesized_expression "((re_dfa_t *)src == (re_dfa_t *)puVar19[1])" ( (binary_expression "(re_dfa_t *)src == (re_dfa_t *)puVar19[1]" (cast_expression "(re_dfa_t *)src" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(re_dfa_t *)puVar19[1]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      elem = &((re_dfa_t *)dst)->nodes_len;\n      if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" { (expression_statement "elem = &((re_dfa_t *)dst)->nodes_len;" (assignment_expression "elem = &((re_dfa_t *)dst)->nodes_len" identifier = (pointer_expression "&((re_dfa_t *)dst)->nodes_len" & (field_expression "((re_dfa_t *)dst)->nodes_len" (parenthesized_expression "((re_dfa_t *)dst)" ( (cast_expression "(re_dfa_t *)dst" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (if_statement "if (cur_nodes == (re_dfa_t *)0xffffffff) {\n        rVar17 = _REG_NOERROR;\n      }\n      else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }" if (parenthesized_expression "(cur_nodes == (re_dfa_t *)0xffffffff)" ( (binary_expression "cur_nodes == (re_dfa_t *)0xffffffff" identifier == (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        rVar17 = _REG_NOERROR;\n      }" { (expression_statement "rVar17 = _REG_NOERROR;" (assignment_expression "rVar17 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }" else (compound_statement "{\n        iVar10 = *(int *)(puVar28 + 0x20694);\n        prVar27 = *(re_dfa_t **)(iVar5 + 0x54);\n        iVar11 = *(int *)(puVar28 + 0x20694);\n        iVar12 = *(int *)(puVar28 + 0x20694);\n        prVar24 = prVar26;\nLAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');\n      }" { (expression_statement "iVar10 = *(int *)(puVar28 + 0x20694);" (assignment_expression "iVar10 = *(int *)(puVar28 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar28 + 0x20694)" * (cast_expression "(int *)(puVar28 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x20694)" ( (binary_expression "puVar28 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "prVar27 = *(re_dfa_t **)(iVar5 + 0x54);" (assignment_expression "prVar27 = *(re_dfa_t **)(iVar5 + 0x54)" identifier = (pointer_expression "*(re_dfa_t **)(iVar5 + 0x54)" * (cast_expression "(re_dfa_t **)(iVar5 + 0x54)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar28 + 0x20694);" (assignment_expression "iVar11 = *(int *)(puVar28 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar28 + 0x20694)" * (cast_expression "(int *)(puVar28 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x20694)" ( (binary_expression "puVar28 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar28 + 0x20694);" (assignment_expression "iVar12 = *(int *)(puVar28 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar28 + 0x20694)" * (cast_expression "(int *)(puVar28 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x20694)" ( (binary_expression "puVar28 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "prVar24 = prVar26;" (assignment_expression "prVar24 = prVar26" identifier = identifier) ;) (labeled_statement "LAB_0001fd9c:\n        do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');" statement_identifier : (do_statement "do {\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        } while (*pcVar1 != '\0');" do (compound_statement "{\n          prStack_b8 = (re_dfa_t *)*puVar19;\n          set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;\n          cur_nodes = (re_dfa_t *)elem;\n          prVar26 = prStack_b8;\n          IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);\n          if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar19 + 4);\n          rVar17 = _REG_NOERROR;\n          prVar26 = prVar24;\n          puVar19 = puVar19 + 5;\n        }" { (expression_statement "prStack_b8 = (re_dfa_t *)*puVar19;" (assignment_expression "prStack_b8 = (re_dfa_t *)*puVar19" identifier = (cast_expression "(re_dfa_t *)*puVar19" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar19" * identifier))) ;) (expression_statement "set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc;" (assignment_expression "set = (re_node_set *)((re_dfa_t *)dst)->nodes_alloc" identifier = (cast_expression "(re_node_set *)((re_dfa_t *)dst)->nodes_alloc" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((re_dfa_t *)dst)->nodes_alloc" (parenthesized_expression "((re_dfa_t *)dst)" ( (cast_expression "(re_dfa_t *)dst" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (expression_statement "cur_nodes = (re_dfa_t *)elem;" (assignment_expression "cur_nodes = (re_dfa_t *)elem" identifier = (cast_expression "(re_dfa_t *)elem" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar26 = prStack_b8;" (assignment_expression "prVar26 = prStack_b8" identifier = identifier) ;) (expression_statement "IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8);" (assignment_expression "IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8)" identifier = (call_expression "re_node_set_contains(set,(Idx)elem,(re_node_set *)prStack_b8)" identifier (argument_list "(set,(Idx)elem,(re_node_set *)prStack_b8)" ( identifier , (cast_expression "(Idx)elem" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(re_node_set *)prStack_b8" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (IVar14 != 0) {\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(IVar14 != 0)" ( (binary_expression "IVar14 != 0" identifier != number_literal) )) (compound_statement "{\n            prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));\n            iVar25 = (int)prVar21 * 4;\n            if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" { (expression_statement "prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]));" (assignment_expression "prVar21 = (re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]))" identifier = (cast_expression "(re_dfa_t *)((int)src + (puVar19[3] - puVar19[2]))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)src + (puVar19[3] - puVar19[2]))" ( (binary_expression "(int)src + (puVar19[3] - puVar19[2])" (cast_expression "(int)src" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(puVar19[3] - puVar19[2])" ( (binary_expression "puVar19[3] - puVar19[2]" (subscript_expression "puVar19[3]" identifier [ number_literal ]) - (subscript_expression "puVar19[2]" identifier [ number_literal ])) ))) )))) ;) (expression_statement "iVar25 = (int)prVar21 * 4;" (assignment_expression "iVar25 = (int)prVar21 * 4" identifier = (binary_expression "(int)prVar21 * 4" (cast_expression "(int)prVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if ((re_dfa_t *)src == prVar21) {\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" if (parenthesized_expression "((re_dfa_t *)src == prVar21)" ( (binary_expression "(re_dfa_t *)src == prVar21" (cast_expression "(re_dfa_t *)src" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n              prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;\n              cur_nodes = (re_dfa_t *)elem;\n              prStack_b8 = prVar26;\n              IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);\n              if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }\n            }" { (expression_statement "prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems;" (assignment_expression "prVar26 = (re_dfa_t *)*prVar27->edests[(int)prVar26].elems" identifier = (cast_expression "(re_dfa_t *)*prVar27->edests[(int)prVar26].elems" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*prVar27->edests[(int)prVar26].elems" * (field_expression "prVar27->edests[(int)prVar26].elems" (subscript_expression "prVar27->edests[(int)prVar26]" (field_expression "prVar27->edests" identifier -> field_identifier) [ (cast_expression "(int)prVar26" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier)))) ;) (expression_statement "cur_nodes = (re_dfa_t *)elem;" (assignment_expression "cur_nodes = (re_dfa_t *)elem" identifier = (cast_expression "(re_dfa_t *)elem" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prStack_b8 = prVar26;" (assignment_expression "prStack_b8 = prVar26" identifier = identifier) ;) (expression_statement "IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26);" (assignment_expression "IVar14 = re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26)" identifier = (call_expression "re_node_set_contains(set,(Idx)elem,(re_node_set *)prVar26)" identifier (argument_list "(set,(Idx)elem,(re_node_set *)prVar26)" ( identifier , (cast_expression "(Idx)elem" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(re_node_set *)prVar26" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (IVar14 == 0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }" if (parenthesized_expression "(IVar14 == 0)" ( (binary_expression "IVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }\n                cur_nodes = (re_dfa_t *)&prStack_90;\n                prStack_b8 = prStack_4c;\n                prVar24 = (re_dfa_t *)&_gp;\n                rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);\n                rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);\n                (**(code **)(puVar28 + 0x207dc))(puStack_88);\n                rVar17 = rStack_94;\n                prVar26 = prVar24;\n                if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;\n                puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);\n                goto LAB_0001fd9c;\n              }" { (expression_statement "prStack_90 = (re_token_t *)0x1;" (assignment_expression "prStack_90 = (re_token_t *)0x1" identifier = (cast_expression "(re_token_t *)0x1" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sStack_8c = 1;" (assignment_expression "sStack_8c = 1" identifier = number_literal) ;) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar28 + 0x20774))(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar28 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar28 + 0x20774))" ( (pointer_expression "**(code **)(puVar28 + 0x20774)" * (pointer_expression "*(code **)(puVar28 + 0x20774)" * (cast_expression "(code **)(puVar28 + 0x20774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x20774)" ( (binary_expression "puVar28 + 0x20774" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }\n                else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }" if (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" ( (binary_expression "puStack_88 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  sStack_8c = 0;\n                  rStack_94 = _REG_ESPACE;\n                  prStack_90 = (re_token_t *)0x0;\n                }" { (expression_statement "sStack_8c = 0;" (assignment_expression "sStack_8c = 0" identifier = number_literal) ;) (expression_statement "rStack_94 = _REG_ESPACE;" (assignment_expression "rStack_94 = _REG_ESPACE" identifier = identifier) ;) (expression_statement "prStack_90 = (re_token_t *)0x0;" (assignment_expression "prStack_90 = (re_token_t *)0x0" identifier = (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }" else (compound_statement "{\n                  *puStack_88 = prVar26;\n                  rStack_94 = _REG_NOERROR;\n                }" { (expression_statement "*puStack_88 = prVar26;" (assignment_expression "*puStack_88 = prVar26" (pointer_expression "*puStack_88" * identifier) = identifier) ;) (expression_statement "rStack_94 = _REG_NOERROR;" (assignment_expression "rStack_94 = _REG_NOERROR" identifier = identifier) ;) }))) (expression_statement "cur_nodes = (re_dfa_t *)&prStack_90;" (assignment_expression "cur_nodes = (re_dfa_t *)&prStack_90" identifier = (cast_expression "(re_dfa_t *)&prStack_90" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prStack_90" & identifier))) ;) (expression_statement "prStack_b8 = prStack_4c;" (assignment_expression "prStack_b8 = prStack_4c" identifier = identifier) ;) (expression_statement "prVar24 = (re_dfa_t *)&_gp;" (assignment_expression "prVar24 = (re_dfa_t *)&_gp" identifier = (cast_expression "(re_dfa_t *)&_gp" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp" & identifier))) ;) (expression_statement "rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0);" (assignment_expression "rVar15 = check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0)" identifier = (call_expression "check_arrival_expand_ecl\n                                   (prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0)" identifier (argument_list "(prVar27,(re_node_set *)cur_nodes,(Idx)prStack_4c,0x480d0)" ( identifier , (cast_expression "(re_node_set *)cur_nodes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)prStack_4c" ( (type_descriptor "Idx" type_identifier) ) identifier) , number_literal )))) ;) (expression_statement "rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes);" (assignment_expression "rVar16 = re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes)" identifier = (call_expression "re_node_set_merge((re_node_set *)dst,(re_node_set *)cur_nodes)" identifier (argument_list "((re_node_set *)dst,(re_node_set *)cur_nodes)" ( (cast_expression "(re_node_set *)dst" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)cur_nodes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "(**(code **)(puVar28 + 0x207dc))(puStack_88);" (call_expression "(**(code **)(puVar28 + 0x207dc))(puStack_88)" (parenthesized_expression "(**(code **)(puVar28 + 0x207dc))" ( (pointer_expression "**(code **)(puVar28 + 0x207dc)" * (pointer_expression "*(code **)(puVar28 + 0x207dc)" * (cast_expression "(code **)(puVar28 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x207dc)" ( (binary_expression "puVar28 + 0x207dc" identifier + number_literal) ))))) )) (argument_list "(puStack_88)" ( identifier ))) ;) (expression_statement "rVar17 = rStack_94;" (assignment_expression "rVar17 = rStack_94" identifier = identifier) ;) (expression_statement "prVar26 = prVar24;" (assignment_expression "prVar26 = prVar24" identifier = identifier) ;) (if_statement "if (((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)) break;" if (parenthesized_expression "(((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR))" ( (binary_expression "((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)) ||\n                   (rVar17 = rVar16, rVar16 != _REG_NOERROR)" (parenthesized_expression "((rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR))" ( (binary_expression "(rStack_94 != _REG_NOERROR) || (rVar17 = rVar15, rVar15 != _REG_NOERROR)" (parenthesized_expression "(rStack_94 != _REG_NOERROR)" ( (binary_expression "rStack_94 != _REG_NOERROR" identifier != identifier) )) || (parenthesized_expression "(rVar17 = rVar15, rVar15 != _REG_NOERROR)" ( (comma_expression "rVar17 = rVar15, rVar15 != _REG_NOERROR" (assignment_expression "rVar17 = rVar15" identifier = identifier) , (binary_expression "rVar15 != _REG_NOERROR" identifier != identifier)) ))) )) || (parenthesized_expression "(rVar17 = rVar16, rVar16 != _REG_NOERROR)" ( (comma_expression "rVar17 = rVar16, rVar16 != _REG_NOERROR" (assignment_expression "rVar17 = rVar16" identifier = identifier) , (binary_expression "rVar16 != _REG_NOERROR" identifier != identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9);" (assignment_expression "puVar19 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar9)" ( (binary_expression "*(int *)(iVar5 + 0x74) + iVar9" (pointer_expression "*(int *)(iVar5 + 0x74)" * (cast_expression "(int *)(iVar5 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) + identifier) )))) ;) (goto_statement "goto LAB_0001fd9c;" goto statement_identifier ;) })) }) (else_clause "else {\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" else (compound_statement "{\n              prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n              prVar23 = prVar24->nodes;\n              prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];\n              if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" { (expression_statement "prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);" (assignment_expression "prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25)" identifier = (cast_expression "(re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar25)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar25" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "prVar23 = prVar24->nodes;" (assignment_expression "prVar23 = prVar24->nodes" identifier = (field_expression "prVar24->nodes" identifier -> field_identifier)) ;) (expression_statement "prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26];" (assignment_expression "prVar21 = (re_dfa_t *)prVar27->nexts[(int)prVar26]" identifier = (cast_expression "(re_dfa_t *)prVar27->nexts[(int)prVar26]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "prVar27->nexts[(int)prVar26]" (field_expression "prVar27->nexts" identifier -> field_identifier) [ (cast_expression "(int)prVar26" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (if_statement "if (prVar23 == (re_token_t *)0x0) {\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }\n              else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }" if (parenthesized_expression "(prVar23 == (re_token_t *)0x0)" ( (binary_expression "prVar23 == (re_token_t *)0x0" identifier == (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                prStack_90 = (re_token_t *)0x1;\n                sStack_8c = 1;\n                prVar26 = prVar24;\n                puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }\n                *puStack_88 = prVar21;\n                rStack_94 = _REG_NOERROR;\nLAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;\n                cur_nodes = prVar27;\n                prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);\n                pcVar29 = *(code **)(puVar28 + 0x207dc);\n                prVar24->nodes = prVar23;\n                (*pcVar29)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;\n              }" { (expression_statement "prStack_90 = (re_token_t *)0x1;" (assignment_expression "prStack_90 = (re_token_t *)0x1" identifier = (cast_expression "(re_token_t *)0x1" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sStack_8c = 1;" (assignment_expression "sStack_8c = 1" identifier = number_literal) ;) (expression_statement "prVar26 = prVar24;" (assignment_expression "prVar26 = prVar24" identifier = identifier) ;) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar28 + 0x20774))(4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar28 + 0x20774))(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar28 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar28 + 0x20774))" ( (pointer_expression "**(code **)(puVar28 + 0x20774)" * (pointer_expression "*(code **)(puVar28 + 0x20774)" * (cast_expression "(code **)(puVar28 + 0x20774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x20774)" ( (binary_expression "puVar28 + 0x20774" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }" if (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" ( (binary_expression "puStack_88 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001ff68:\n                  rVar17 = _REG_ESPACE;\n                  break;\n                }" { (labeled_statement "LAB_0001ff68:\n                  rVar17 = _REG_ESPACE;" statement_identifier : (expression_statement "rVar17 = _REG_ESPACE;" (assignment_expression "rVar17 = _REG_ESPACE" identifier = identifier) ;)) (break_statement "break;" break ;) })) (expression_statement "*puStack_88 = prVar21;" (assignment_expression "*puStack_88 = prVar21" (pointer_expression "*puStack_88" * identifier) = identifier) ;) (expression_statement "rStack_94 = _REG_NOERROR;" (assignment_expression "rStack_94 = _REG_NOERROR" identifier = identifier) ;) (labeled_statement "LAB_0001fd48:\n                prStack_b8 = (re_dfa_t *)&prStack_90;" statement_identifier : (expression_statement "prStack_b8 = (re_dfa_t *)&prStack_90;" (assignment_expression "prStack_b8 = (re_dfa_t *)&prStack_90" identifier = (cast_expression "(re_dfa_t *)&prStack_90" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prStack_90" & identifier))) ;)) (expression_statement "cur_nodes = prVar27;" (assignment_expression "cur_nodes = prVar27" identifier = identifier) ;) (expression_statement "prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94);" (assignment_expression "prVar23 = (re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94)" identifier = (cast_expression "(re_token_t *)(*(code *)(iVar10 + -0x8c4))(&rStack_94)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(iVar10 + -0x8c4))(&rStack_94)" (parenthesized_expression "(*(code *)(iVar10 + -0x8c4))" ( (pointer_expression "*(code *)(iVar10 + -0x8c4)" * (cast_expression "(code *)(iVar10 + -0x8c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x8c4)" ( (binary_expression "iVar10 + -0x8c4" identifier + number_literal) )))) )) (argument_list "(&rStack_94)" ( (pointer_expression "&rStack_94" & identifier) ))))) ;) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x207dc);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar28 + 0x207dc)" * (cast_expression "(code **)(puVar28 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x207dc)" ( (binary_expression "puVar28 + 0x207dc" identifier + number_literal) ))))) ;) (expression_statement "prVar24->nodes = prVar23;" (assignment_expression "prVar24->nodes = prVar23" (field_expression "prVar24->nodes" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar29)(puStack_88);" (call_expression "(*pcVar29)(puStack_88)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(puStack_88)" ( identifier ))) ;) (if_statement "if ((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)) break;" if (parenthesized_expression "((*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR))" ( (binary_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0) &&\n                   (rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)" (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar5 + 100) + iVar25) == 0" (pointer_expression "*(int *)(*(int *)(iVar5 + 100) + iVar25)" * (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar25)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar25" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) == number_literal) )) && (parenthesized_expression "(rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR)" ( (comma_expression "rVar17 = rStack_94, prVar26 = prVar24, rStack_94 != _REG_NOERROR" (assignment_expression "rVar17 = rStack_94" identifier = identifier) , (comma_expression "prVar26 = prVar24, rStack_94 != _REG_NOERROR" (assignment_expression "prVar26 = prVar24" identifier = identifier) , (binary_expression "rStack_94 != _REG_NOERROR" identifier != identifier))) ))) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }" else (compound_statement "{\n                cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;\n                prStack_b8 = prVar21;\n                IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);\n                if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }\n              }" { (expression_statement "cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4;" (assignment_expression "cur_nodes = (re_dfa_t *)&prVar23[1].field_0x4" identifier = (cast_expression "(re_dfa_t *)&prVar23[1].field_0x4" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar23[1].field_0x4" & (field_expression "prVar23[1].field_0x4" (subscript_expression "prVar23[1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "prStack_b8 = prVar21;" (assignment_expression "prStack_b8 = prVar21" identifier = identifier) ;) (expression_statement "IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21);" (assignment_expression "IVar14 = re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21)" identifier = (call_expression "re_node_set_contains\n                                   ((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21)" identifier (argument_list "((re_node_set *)prVar23[1].opr.mbcset,(Idx)cur_nodes,\n                                    (re_node_set *)prVar21)" ( (cast_expression "(re_node_set *)prVar23[1].opr.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar23[1].opr.mbcset" (field_expression "prVar23[1].opr" (subscript_expression "prVar23[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) , (cast_expression "(Idx)cur_nodes" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(re_node_set *)prVar21" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (IVar14 == 0) {\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }" if (parenthesized_expression "(IVar14 == 0)" ( (binary_expression "IVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                  rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);\n                  iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);\n                  if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }\n                  (*pcVar29)(puStack_88);\n                  rVar17 = rStack_94;\n                  cur_nodes = prVar21;\n                  prVar26 = prVar24;\n                  if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;\n                  break;\n                }" { (expression_statement "rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4);" (assignment_expression "rStack_94 = (*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4)" identifier = (call_expression "(*(code *)(iVar11 + -4000))(&prStack_90,&prVar23->field_0x4)" (parenthesized_expression "(*(code *)(iVar11 + -4000))" ( (pointer_expression "*(code *)(iVar11 + -4000)" * (cast_expression "(code *)(iVar11 + -4000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4000)" ( (binary_expression "iVar11 + -4000" identifier + number_literal) )))) )) (argument_list "(&prStack_90,&prVar23->field_0x4)" ( (pointer_expression "&prStack_90" & identifier) , (pointer_expression "&prVar23->field_0x4" & (field_expression "prVar23->field_0x4" identifier -> field_identifier)) )))) ;) (expression_statement "iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90);" (assignment_expression "iVar13 = (*(code *)(iVar12 + -0x4558))(&prStack_90)" identifier = (call_expression "(*(code *)(iVar12 + -0x4558))(&prStack_90)" (parenthesized_expression "(*(code *)(iVar12 + -0x4558))" ( (pointer_expression "*(code *)(iVar12 + -0x4558)" * (cast_expression "(code *)(iVar12 + -0x4558)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x4558)" ( (binary_expression "iVar12 + -0x4558" identifier + number_literal) )))) )) (argument_list "(&prStack_90)" ( (pointer_expression "&prStack_90" & identifier) )))) ;) (if_statement "if (rStack_94 == _REG_NOERROR) {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }" if (parenthesized_expression "(rStack_94 == _REG_NOERROR)" ( (binary_expression "rStack_94 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                    if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }\n                  }" { (expression_statement "pcVar29 = *(code **)(puVar28 + 0x207dc);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar28 + 0x207dc)" * (cast_expression "(code **)(puVar28 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x207dc)" ( (binary_expression "puVar28 + 0x207dc" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != 0) {\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                      prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);\n                      goto LAB_0001fd48;\n                    }" { (expression_statement "prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25);" (assignment_expression "prVar24 = (re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25)" identifier = (cast_expression "(re_dfa_t *)(*(int *)(iVar5 + 100) + iVar25)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar25)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar25" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) ;) (goto_statement "goto LAB_0001fd48;" goto statement_identifier ;) })) }) (else_clause "else {\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }" else (compound_statement "{\n                    pcVar29 = *(code **)(puVar28 + 0x207dc);\n                  }" { (expression_statement "pcVar29 = *(code **)(puVar28 + 0x207dc);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar28 + 0x207dc)" * (cast_expression "(code **)(puVar28 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x207dc)" ( (binary_expression "puVar28 + 0x207dc" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar29)(puStack_88);" (call_expression "(*pcVar29)(puStack_88)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(puStack_88)" ( identifier ))) ;) (expression_statement "rVar17 = rStack_94;" (assignment_expression "rVar17 = rStack_94" identifier = identifier) ;) (expression_statement "cur_nodes = prVar21;" (assignment_expression "cur_nodes = prVar21" identifier = identifier) ;) (expression_statement "prVar26 = prVar24;" (assignment_expression "prVar26 = prVar24" identifier = identifier) ;) (if_statement "if (rStack_94 == _REG_NOERROR) goto LAB_0001ff68;" if (parenthesized_expression "(rStack_94 == _REG_NOERROR)" ( (binary_expression "rStack_94 == _REG_NOERROR" identifier == identifier) )) (goto_statement "goto LAB_0001ff68;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }))) }))) })) (expression_statement "pcVar1 = (char *)(puVar19 + 4);" (assignment_expression "pcVar1 = (char *)(puVar19 + 4)" identifier = (cast_expression "(char *)(puVar19 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 4)" ( (binary_expression "puVar19 + 4" identifier + number_literal) )))) ;) (expression_statement "rVar17 = _REG_NOERROR;" (assignment_expression "rVar17 = _REG_NOERROR" identifier = identifier) ;) (expression_statement "prVar26 = prVar24;" (assignment_expression "prVar26 = prVar24" identifier = identifier) ;) (expression_statement "puVar19 = puVar19 + 5;" (assignment_expression "puVar19 = puVar19 + 5" identifier = (binary_expression "puVar19 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar1 != '\0')" ( (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;)) }))) })) })) (if_statement "if (pIStack_84 == (Idx *)*piVar7) {\n    return rVar17;\n  }" if (parenthesized_expression "(pIStack_84 == (Idx *)*piVar7)" ( (binary_expression "pIStack_84 == (Idx *)*piVar7" identifier == (cast_expression "(Idx *)*piVar7" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) )) (compound_statement "{\n    return rVar17;\n  }" { (return_statement "return rVar17;" return identifier ;) })) (expression_statement "pcVar29 = *(code **)(puVar28 + 0x207b0);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x207b0)" identifier = (pointer_expression "*(code **)(puVar28 + 0x207b0)" * (cast_expression "(code **)(puVar28 + 0x207b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x207b0)" ( (binary_expression "puVar28 + 0x207b0" identifier + number_literal) ))))) ;) (expression_statement "pIVar22 = pIStack_84;" (assignment_expression "pIVar22 = pIStack_84" identifier = identifier) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "prVar23 = cur_nodes->nodes;" (assignment_expression "prVar23 = cur_nodes->nodes" identifier = (field_expression "cur_nodes->nodes" identifier -> field_identifier)) ;) (expression_statement "piVar7 = (int *)pIVar22[0x15];" (assignment_expression "piVar7 = (int *)pIVar22[0x15]" identifier = (cast_expression "(int *)pIVar22[0x15]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pIVar22[0x15]" identifier [ number_literal ]))) ;) (if_statement "if (0 < (int)prVar23) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }\n      iVar11 = pIVar22[0x1f];\n      iVar10 = pIVar22[0x21];\n      if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }\n      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;\n      if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }\n      pIVar22[0x1f] = iVar11 + 1;\n      puVar19[1] = iVar9;\n      *puVar19 = prVar26;\n      prVar23 = cur_nodes->nodes;\n    } while (iVar5 < (int)prVar23);\n  }" if (parenthesized_expression "(0 < (int)prVar23)" ( (binary_expression "0 < (int)prVar23" number_literal < (cast_expression "(int)prVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar5 = 0;\n    do {\n      while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }\n      iVar11 = pIVar22[0x1f];\n      iVar10 = pIVar22[0x21];\n      if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }\n      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;\n      if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }\n      pIVar22[0x1f] = iVar11 + 1;\n      puVar19[1] = iVar9;\n      *puVar19 = prVar26;\n      prVar23 = cur_nodes->nodes;\n    } while (iVar5 < (int)prVar23);\n  }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }\n      iVar11 = pIVar22[0x1f];\n      iVar10 = pIVar22[0x21];\n      if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }\n      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;\n      if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }\n      pIVar22[0x1f] = iVar11 + 1;\n      puVar19[1] = iVar9;\n      *puVar19 = prVar26;\n      prVar23 = cur_nodes->nodes;\n    } while (iVar5 < (int)prVar23);" do (compound_statement "{\n      while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }\n      iVar11 = pIVar22[0x1f];\n      iVar10 = pIVar22[0x21];\n      if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }\n      puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;\n      if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }\n      pIVar22[0x1f] = iVar11 + 1;\n      puVar19[1] = iVar9;\n      *puVar19 = prVar26;\n      prVar23 = cur_nodes->nodes;\n    }" { (while_statement "while( true ) {\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;\n        puVar18 = (uint *)(*piVar7 + iVar9 * 8);\n        iVar5 = iVar5 + 1;\n        if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;\n        if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }\n      }" { (expression_statement "iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx;" (assignment_expression "iVar9 = (&prStack_b8->nodes->opr)[iVar5].idx" identifier = (field_expression "(&prStack_b8->nodes->opr)[iVar5].idx" (subscript_expression "(&prStack_b8->nodes->opr)[iVar5]" (parenthesized_expression "(&prStack_b8->nodes->opr)" ( (pointer_expression "&prStack_b8->nodes->opr" & (field_expression "prStack_b8->nodes->opr" (field_expression "prStack_b8->nodes" identifier -> field_identifier) -> field_identifier)) )) [ identifier ]) . field_identifier)) ;) (expression_statement "puVar18 = (uint *)(*piVar7 + iVar9 * 8);" (assignment_expression "puVar18 = (uint *)(*piVar7 + iVar9 * 8)" identifier = (cast_expression "(uint *)(*piVar7 + iVar9 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + iVar9 * 8)" ( (binary_expression "*piVar7 + iVar9 * 8" (pointer_expression "*piVar7" * identifier) + (binary_expression "iVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)) break;" if (parenthesized_expression "(((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0))" ( (binary_expression "((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)) &&\n           (((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)" (parenthesized_expression "((*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20))" ( (binary_expression "(*(char *)(puVar18 + 1) == '\b') && (uVar20 = *puVar18, (int)uVar20 < 0x20)" (parenthesized_expression "(*(char *)(puVar18 + 1) == '\b')" ( (binary_expression "*(char *)(puVar18 + 1) == '\b'" (pointer_expression "*(char *)(puVar18 + 1)" * (cast_expression "(char *)(puVar18 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) == (char_literal "'\b'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar20 = *puVar18, (int)uVar20 < 0x20)" ( (comma_expression "uVar20 = *puVar18, (int)uVar20 < 0x20" (assignment_expression "uVar20 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) , (binary_expression "(int)uVar20 < 0x20" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) && (parenthesized_expression "(((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0)" ( (binary_expression "((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1)" ( (binary_expression "(uint)piVar7[0x14] >> (uVar20 & 0x1f) & 1" (binary_expression "(uint)piVar7[0x14] >> (uVar20 & 0x1f)" (cast_expression "(uint)piVar7[0x14]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar7[0x14]" identifier [ number_literal ])) >> (parenthesized_expression "(uVar20 & 0x1f)" ( (binary_expression "uVar20 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if ((int)prVar23 <= iVar5) {\n          return _REG_NOERROR;\n        }" if (parenthesized_expression "((int)prVar23 <= iVar5)" ( (binary_expression "(int)prVar23 <= iVar5" (cast_expression "(int)prVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          return _REG_NOERROR;\n        }" { (return_statement "return _REG_NOERROR;" return identifier ;) })) })) (expression_statement "iVar11 = pIVar22[0x1f];" (assignment_expression "iVar11 = pIVar22[0x1f]" identifier = (subscript_expression "pIVar22[0x1f]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = pIVar22[0x21];" (assignment_expression "iVar10 = pIVar22[0x21]" identifier = (subscript_expression "pIVar22[0x21]" identifier [ number_literal ])) ;) (if_statement "if (iVar11 == pIVar22[0x20]) {\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }" if (parenthesized_expression "(iVar11 == pIVar22[0x20])" ( (binary_expression "iVar11 == pIVar22[0x20]" identifier == (subscript_expression "pIVar22[0x20]" identifier [ number_literal ])) )) (compound_statement "{\n        iVar12 = iVar11 << 1;\n        iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);\n        if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }\n        iVar11 = pIVar22[0x1f];\n        pIVar22[0x21] = iVar10;\n        pIVar22[0x20] = iVar12;\n      }" { (expression_statement "iVar12 = iVar11 << 1;" (assignment_expression "iVar12 = iVar11 << 1" identifier = (binary_expression "iVar11 << 1" identifier << number_literal)) ;) (expression_statement "iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3);" (assignment_expression "iVar10 = (**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3)" identifier = (call_expression "(**(code **)(pcVar29 + 0x20334))(iVar10,iVar11 << 3)" (parenthesized_expression "(**(code **)(pcVar29 + 0x20334))" ( (pointer_expression "**(code **)(pcVar29 + 0x20334)" * (pointer_expression "*(code **)(pcVar29 + 0x20334)" * (cast_expression "(code **)(pcVar29 + 0x20334)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x20334)" ( (binary_expression "pcVar29 + 0x20334" identifier + number_literal) ))))) )) (argument_list "(iVar10,iVar11 << 3)" ( identifier , (binary_expression "iVar11 << 3" identifier << number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n          return _REG_ESPACE;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          return _REG_ESPACE;\n        }" { (return_statement "return _REG_ESPACE;" return identifier ;) })) (expression_statement "iVar11 = pIVar22[0x1f];" (assignment_expression "iVar11 = pIVar22[0x1f]" identifier = (subscript_expression "pIVar22[0x1f]" identifier [ number_literal ])) ;) (expression_statement "pIVar22[0x21] = iVar10;" (assignment_expression "pIVar22[0x21] = iVar10" (subscript_expression "pIVar22[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pIVar22[0x20] = iVar12;" (assignment_expression "pIVar22[0x20] = iVar12" (subscript_expression "pIVar22[0x20]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18);" (assignment_expression "puVar19 = (undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x20288))(1,0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x20288))(1,0x18)" (parenthesized_expression "(**(code **)(pcVar29 + 0x20288))" ( (pointer_expression "**(code **)(pcVar29 + 0x20288)" * (pointer_expression "*(code **)(pcVar29 + 0x20288)" * (cast_expression "(code **)(pcVar29 + 0x20288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x20288)" ( (binary_expression "pcVar29 + 0x20288" identifier + number_literal) ))))) )) (argument_list "(1,0x18)" ( number_literal , number_literal ))))) ;) (expression_statement "*(undefined4 **)(iVar10 + iVar11 * 4) = puVar19;" (assignment_expression "*(undefined4 **)(iVar10 + iVar11 * 4) = puVar19" (pointer_expression "*(undefined4 **)(iVar10 + iVar11 * 4)" * (cast_expression "(undefined4 **)(iVar10 + iVar11 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar11 * 4)" ( (binary_expression "iVar10 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n        return _REG_ESPACE;\n      }" if (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" ( (binary_expression "puVar19 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return _REG_ESPACE;\n      }" { (return_statement "return _REG_ESPACE;" return identifier ;) })) (expression_statement "pIVar22[0x1f] = iVar11 + 1;" (assignment_expression "pIVar22[0x1f] = iVar11 + 1" (subscript_expression "pIVar22[0x1f]" identifier [ number_literal ]) = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar19[1] = iVar9;" (assignment_expression "puVar19[1] = iVar9" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar19 = prVar26;" (assignment_expression "*puVar19 = prVar26" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "prVar23 = cur_nodes->nodes;" (assignment_expression "prVar23 = cur_nodes->nodes" identifier = (field_expression "cur_nodes->nodes" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(iVar5 < (int)prVar23)" ( (binary_expression "iVar5 < (int)prVar23" identifier < (cast_expression "(int)prVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (return_statement "return _REG_NOERROR;" return identifier ;) })))
(translation_unit "int FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}\n\n" (function_definition "int FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}" primitive_type (function_declarator "FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined4 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "int aiStack_94 [3];" primitive_type (array_declarator "aiStack_94 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined4 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "int *piStack_7c;" primitive_type (pointer_declarator "*piStack_7c" * identifier) ;) (declaration "int *piStack_78;" primitive_type (pointer_declarator "*piStack_78" * identifier) ;) (declaration "int *piStack_74;" primitive_type (pointer_declarator "*piStack_74" * identifier) ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "undefined4 *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "undefined *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "int *piStack_60;" primitive_type (pointer_declarator "*piStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "int *piStack_4c;" primitive_type (pointer_declarator "*piStack_4c" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int aiStack_38 [2];" primitive_type (array_declarator "aiStack_38 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00040330;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00040330" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00040330;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00040330" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00040330" * (cast_expression "(int *)PTR___stack_chk_guard_00040330" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar22 = param_4;" (assignment_expression "piVar22 = param_4" identifier = identifier) ;) (if_statement "if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }" if (parenthesized_expression "(0 < (int)param_4)" ( (binary_expression "0 < (int)param_4" number_literal < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }" { (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8 = aiStack_38;" (assignment_expression "unaff_s8 = aiStack_38" identifier = identifier) ;) (expression_statement "unaff_s4 = PTR_LAB_000401f4 + -0xed0;" (assignment_expression "unaff_s4 = PTR_LAB_000401f4 + -0xed0" identifier = (binary_expression "PTR_LAB_000401f4 + -0xed0" identifier + number_literal)) ;) (expression_statement "unaff_s7 = PTR_LAB_000401f4 + -0x8c4;" (assignment_expression "unaff_s7 = PTR_LAB_000401f4 + -0x8c4" identifier = (binary_expression "PTR_LAB_000401f4 + -0x8c4" identifier + number_literal)) ;) (expression_statement "unaff_s0 = param_2;" (assignment_expression "unaff_s0 = param_2" identifier = identifier) ;) (expression_statement "unaff_s1 = param_3;" (assignment_expression "unaff_s1 = param_3" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);" do (compound_statement "{\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    }" { (while_statement "while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }" { (expression_statement "param_2 = (undefined4 *)*unaff_s0;" (assignment_expression "param_2 = (undefined4 *)*unaff_s0" identifier = (cast_expression "(undefined4 *)*unaff_s0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s0" * identifier))) ;) (expression_statement "param_3 = (int *)*unaff_s1;" (assignment_expression "param_3 = (int *)*unaff_s1" identifier = (cast_expression "(int *)*unaff_s1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s1" * identifier))) ;) (expression_statement "unaff_s3 = param_4;" (assignment_expression "unaff_s3 = param_4" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (param_2 != (undefined4 *)0x0) break;" if (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "unaff_s2 = (int *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (int *)((int)unaff_s2 + 1)" identifier = (cast_expression "(int *)((int)unaff_s2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + 1)" ( (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*unaff_s0 = param_3;" (assignment_expression "*unaff_s0 = param_3" (pointer_expression "*unaff_s0" * identifier) = identifier) ;) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (if_statement "if (param_4 == unaff_s2) goto LAB_0001fb14;" if (parenthesized_expression "(param_4 == unaff_s2)" ( (binary_expression "param_4 == unaff_s2" identifier == identifier) )) (goto_statement "goto LAB_0001fb14;" goto statement_identifier ;)) })) (expression_statement "bVar2 = param_3 != (int *)0x0;" (assignment_expression "bVar2 = param_3 != (int *)0x0" identifier = (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (if_statement "if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "local_3c = FUN_0001f130(unaff_s8);" (assignment_expression "local_3c = FUN_0001f130(unaff_s8)" identifier = (call_expression "FUN_0001f130(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier )))) ;) (expression_statement "iVar5 = local_3c;" (assignment_expression "iVar5 = local_3c" identifier = identifier) ;) (if_statement "if (local_3c != 0) goto LAB_0001fb18;" if (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001fb18;" goto statement_identifier ;)) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" identifier = identifier) ;) (expression_statement "param_3 = unaff_s8;" (assignment_expression "param_3 = unaff_s8" identifier = identifier) ;) (expression_statement "uVar20 = FUN_0001f73c(&local_3c);" (assignment_expression "uVar20 = FUN_0001f73c(&local_3c)" identifier = (call_expression "FUN_0001f73c(&local_3c)" identifier (argument_list "(&local_3c)" ( (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "puVar24 = PTR_free_0004033c;" (assignment_expression "puVar24 = PTR_free_0004033c" identifier = identifier) ;) (expression_statement "*unaff_s0 = uVar20;" (assignment_expression "*unaff_s0 = uVar20" (pointer_expression "*unaff_s0" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar24)(local_30);" (call_expression "(*(code *)puVar24)(local_30)" (parenthesized_expression "(*(code *)puVar24)" ( (pointer_expression "*(code *)puVar24" * (cast_expression "(code *)puVar24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "iVar5 = local_3c;" (assignment_expression "iVar5 = local_3c" identifier = identifier) ;) (if_statement "if (local_3c != 0) goto LAB_0001fb18;" if (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001fb18;" goto statement_identifier ;)) })) (expression_statement "unaff_s2 = (int *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (int *)((int)unaff_s2 + 1)" identifier = (cast_expression "(int *)((int)unaff_s2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + 1)" ( (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != unaff_s2)" ( (binary_expression "param_4 != unaff_s2" identifier != identifier) )) ;) })) (labeled_statement "LAB_0001fb14:\n  iVar5 = 0;" statement_identifier : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) (expression_statement "param_4 = unaff_s3;" (assignment_expression "param_4 = unaff_s3" identifier = identifier) ;) (expression_statement "param_1 = unaff_s5;" (assignment_expression "param_1 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar4)" ( (binary_expression "local_2c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar25 = FUN_0001fb60;" (assignment_expression "pcVar25 = FUN_0001fb60" identifier = identifier) ;) (expression_statement "iVar5 = local_2c;" (assignment_expression "iVar5 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_00040310;" (assignment_expression "puVar24 = PTR___stack_chk_fail_00040310" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00040310)();" (call_expression "(*(code *)PTR___stack_chk_fail_00040310)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00040310)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00040310" * (cast_expression "(code *)PTR___stack_chk_fail_00040310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar24 + 0x207d0);" (assignment_expression "piVar6 = *(int **)(puVar24 + 0x207d0)" identifier = (pointer_expression "*(int **)(puVar24 + 0x207d0)" * (cast_expression "(int **)(puVar24 + 0x207d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207d0)" ( (binary_expression "puVar24 + 0x207d0" identifier + number_literal) ))))) ;) (expression_statement "puStack_68 = puVar4;" (assignment_expression "puStack_68 = puVar4" identifier = identifier) ;) (expression_statement "iStack_84 = *piVar6;" (assignment_expression "iStack_84 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar23 = *(int **)(iVar5 + 0x6c);" (assignment_expression "piVar23 = *(int **)(iVar5 + 0x6c)" identifier = (pointer_expression "*(int **)(iVar5 + 0x6c)" * (cast_expression "(int **)(iVar5 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "piVar19 = param_3;" (assignment_expression "piVar19 = param_3" identifier = identifier) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (while_statement "while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }" while (parenthesized_expression "((int)piVar18 < (int)piVar23)" ( (binary_expression "(int)piVar18 < (int)piVar23" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }" { (expression_statement "piVar19 = *(int **)(iVar5 + 0x74);" (assignment_expression "piVar19 = *(int **)(iVar5 + 0x74)" identifier = (pointer_expression "*(int **)(iVar5 + 0x74)" * (cast_expression "(int **)(iVar5 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);" (assignment_expression "piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2)" identifier = (cast_expression "(int *)((int)((int)piVar18 + (int)piVar23) / 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)piVar18 + (int)piVar23) / 2)" ( (binary_expression "(int)((int)piVar18 + (int)piVar23) / 2" (cast_expression "(int)((int)piVar18 + (int)piVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)piVar18 + (int)piVar23)" ( (binary_expression "(int)piVar18 + (int)piVar23" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "iVar7 = piVar19[(int)piVar17 * 5 + 1];" (assignment_expression "iVar7 = piVar19[(int)piVar17 * 5 + 1]" identifier = (subscript_expression "piVar19[(int)piVar17 * 5 + 1]" identifier [ (binary_expression "(int)piVar17 * 5 + 1" (binary_expression "(int)piVar17 * 5" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) (while_statement "while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }" while (parenthesized_expression "(piVar3 = piVar17, (int)param_3 <= iVar7)" ( (comma_expression "piVar3 = piVar17, (int)param_3 <= iVar7" (assignment_expression "piVar3 = piVar17" identifier = identifier) , (binary_expression "(int)param_3 <= iVar7" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier)) )) (compound_statement "{\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }" { (if_statement "if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;" if (parenthesized_expression "((int)piVar3 <= (int)piVar18)" ( (binary_expression "(int)piVar3 <= (int)piVar18" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001fc4c;" goto statement_identifier ;)) (expression_statement "piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);" (assignment_expression "piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2)" identifier = (cast_expression "(int *)((int)((int)piVar18 + (int)piVar3) / 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)piVar18 + (int)piVar3) / 2)" ( (binary_expression "(int)((int)piVar18 + (int)piVar3) / 2" (cast_expression "(int)((int)piVar18 + (int)piVar3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)piVar18 + (int)piVar3)" ( (binary_expression "(int)piVar18 + (int)piVar3" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "piVar17 = piVar21;" (assignment_expression "piVar17 = piVar21" identifier = identifier) ;) (expression_statement "piVar23 = piVar3;" (assignment_expression "piVar23 = piVar3" identifier = identifier) ;) (expression_statement "iVar7 = piVar19[(int)piVar21 * 5 + 1];" (assignment_expression "iVar7 = piVar19[(int)piVar21 * 5 + 1]" identifier = (subscript_expression "piVar19[(int)piVar21 * 5 + 1]" identifier [ (binary_expression "(int)piVar21 * 5 + 1" (binary_expression "(int)piVar21 * 5" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) })) (expression_statement "piVar21 = piVar3;" (assignment_expression "piVar21 = piVar3" identifier = identifier) ;) (expression_statement "piVar18 = (int *)((int)piVar3 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar3 + 1)" identifier = (cast_expression "(int *)((int)piVar3 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 1)" ( (binary_expression "(int)piVar3 + 1" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_0001fc4c:\n  iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (expression_statement "puStack_80 = unaff_s0;" (assignment_expression "puStack_80 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_7c = unaff_s1;" (assignment_expression "piStack_7c = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_78 = unaff_s2;" (assignment_expression "piStack_78 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_74 = param_4;" (assignment_expression "piStack_74 = param_4" identifier = identifier) ;) (expression_statement "puStack_70 = unaff_s4;" (assignment_expression "puStack_70 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_6c = param_1;" (assignment_expression "puStack_6c = param_1" identifier = identifier) ;) (expression_statement "puStack_64 = unaff_s7;" (assignment_expression "puStack_64 = unaff_s7" identifier = identifier) ;) (expression_statement "piStack_60 = unaff_s8;" (assignment_expression "piStack_60 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar25;" (assignment_expression "pcStack_5c = pcVar25" identifier = identifier) ;) (expression_statement "piStack_4c = piVar22;" (assignment_expression "piStack_4c = piVar22" identifier = identifier) ;) (if_statement "if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" if (parenthesized_expression "((int)piVar18 < (int)*(int **)(iVar5 + 0x6c))" ( (binary_expression "(int)piVar18 < (int)*(int **)(iVar5 + 0x6c)" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(int **)(iVar5 + 0x6c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(iVar5 + 0x6c)" * (cast_expression "(int **)(iVar5 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) )))))) )) (compound_statement "{\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" { (expression_statement "iVar8 = (int)piVar18 * 0x14;" (assignment_expression "iVar8 = (int)piVar18 * 0x14" identifier = (binary_expression "(int)piVar18 * 0x14" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);" (assignment_expression "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar8)" ( (binary_expression "*(int *)(iVar5 + 0x74) + iVar8" (pointer_expression "*(int *)(iVar5 + 0x74)" * (cast_expression "(int *)(iVar5 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" if (parenthesized_expression "(param_3 == (int *)puVar15[1])" ( (binary_expression "param_3 == (int *)puVar15[1]" identifier == (cast_expression "(int *)puVar15[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" { (if_statement "if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" if (parenthesized_expression "(piVar18 == (int *)0xffffffff)" ( (binary_expression "piVar18 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = 0;\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" else (compound_statement "{\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" { (expression_statement "iVar9 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar9 = *(int *)(puVar24 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar24 + 0x20694)" * (cast_expression "(int *)(puVar24 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x20694)" ( (binary_expression "puVar24 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = *(int **)(iVar5 + 0x54);" (assignment_expression "piVar23 = *(int **)(iVar5 + 0x54)" identifier = (pointer_expression "*(int **)(iVar5 + 0x54)" * (cast_expression "(int **)(iVar5 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar24 + 0x20694)" * (cast_expression "(int *)(puVar24 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x20694)" ( (binary_expression "puVar24 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar11 = *(int *)(puVar24 + 0x20694)" identifier = (pointer_expression "*(int *)(puVar24 + 0x20694)" * (cast_expression "(int *)(puVar24 + 0x20694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x20694)" ( (binary_expression "puVar24 + 0x20694" identifier + number_literal) ))))) ;) (expression_statement "piVar22 = piVar21;" (assignment_expression "piVar22 = piVar21" identifier = identifier) ;) (labeled_statement "LAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');" statement_identifier : (do_statement "do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');" do (compound_statement "{\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        }" { (expression_statement "piVar19 = (int *)*puVar15;" (assignment_expression "piVar19 = (int *)*puVar15" identifier = (cast_expression "(int *)*puVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "uVar20 = param_2[1];" (assignment_expression "uVar20 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "piVar18 = param_2 + 2;" (assignment_expression "piVar18 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar19;" (assignment_expression "piVar21 = piVar19" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0001d8b0(uVar20);" (assignment_expression "iVar7 = FUN_0001d8b0(uVar20)" identifier = (call_expression "FUN_0001d8b0(uVar20)" identifier (argument_list "(uVar20)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" { (expression_statement "piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));" (assignment_expression "piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]))" identifier = (cast_expression "(int *)((int)param_3 + (puVar15[3] - puVar15[2]))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (puVar15[3] - puVar15[2]))" ( (binary_expression "(int)param_3 + (puVar15[3] - puVar15[2])" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(puVar15[3] - puVar15[2])" ( (binary_expression "puVar15[3] - puVar15[2]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) - (subscript_expression "puVar15[2]" identifier [ number_literal ])) ))) )))) ;) (expression_statement "iVar7 = (int)piVar17 * 4;" (assignment_expression "iVar7 = (int)piVar17 * 4" identifier = (binary_expression "(int)piVar17 * 4" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" if (parenthesized_expression "(param_3 == piVar17)" ( (binary_expression "param_3 == piVar17" identifier == identifier) )) (compound_statement "{\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }" { (expression_statement "piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);" (assignment_expression "piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" identifier = (cast_expression "(int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" * (pointer_expression "*(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" * (cast_expression "(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23[5] + (int)piVar21 * 0xc + 8)" ( (binary_expression "piVar23[5] + (int)piVar21 * 0xc + 8" (binary_expression "piVar23[5] + (int)piVar21 * 0xc" (subscript_expression "piVar23[5]" identifier [ number_literal ]) + (binary_expression "(int)piVar21 * 0xc" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))))) ;) (expression_statement "piVar18 = param_2 + 2;" (assignment_expression "piVar18 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar21;" (assignment_expression "piVar19 = piVar21" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0001d8b0(uVar20);" (assignment_expression "iVar7 = FUN_0001d8b0(uVar20)" identifier = (call_expression "FUN_0001d8b0(uVar20)" identifier (argument_list "(uVar20)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }" { (expression_statement "aiStack_94[1] = 1;" (assignment_expression "aiStack_94[1] = 1" (subscript_expression "aiStack_94[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[2] = 1;" (assignment_expression "aiStack_94[2] = 1" (subscript_expression "aiStack_94[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar24 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x20774))" ( (pointer_expression "**(code **)(puVar24 + 0x20774)" * (pointer_expression "*(code **)(puVar24 + 0x20774)" * (cast_expression "(code **)(puVar24 + 0x20774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x20774)" ( (binary_expression "puVar24 + 0x20774" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" if (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" ( (binary_expression "puStack_88 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }" { (expression_statement "aiStack_94[2] = 0;" (assignment_expression "aiStack_94[2] = 0" (subscript_expression "aiStack_94[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[0] = 0xc;" (assignment_expression "aiStack_94[0] = 0xc" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[1] = 0;" (assignment_expression "aiStack_94[1] = 0" (subscript_expression "aiStack_94[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" else (compound_statement "{\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" { (expression_statement "*puStack_88 = piVar21;" (assignment_expression "*puStack_88 = piVar21" (pointer_expression "*puStack_88" * identifier) = identifier) ;) (expression_statement "aiStack_94[0] = 0;" (assignment_expression "aiStack_94[0] = 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "piVar18 = aiStack_94 + 1;" (assignment_expression "piVar18 = aiStack_94 + 1" identifier = (binary_expression "aiStack_94 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = piStack_4c;" (assignment_expression "piVar19 = piStack_4c" identifier = identifier) ;) (expression_statement "piVar22 = (int *)&_gp_1;" (assignment_expression "piVar22 = (int *)&_gp_1" identifier = (cast_expression "(int *)&_gp_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) ;) (expression_statement "iVar12 = FUN_0001e5c8(piVar23,piVar18);" (assignment_expression "iVar12 = FUN_0001e5c8(piVar23,piVar18)" identifier = (call_expression "FUN_0001e5c8(piVar23,piVar18)" identifier (argument_list "(piVar23,piVar18)" ( identifier , identifier )))) ;) (expression_statement "iVar13 = FUN_0001e02c(param_2);" (assignment_expression "iVar13 = FUN_0001e02c(param_2)" identifier = (call_expression "FUN_0001e02c(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar24 + 0x207dc))(puStack_88);" (call_expression "(**(code **)(puVar24 + 0x207dc))(puStack_88)" (parenthesized_expression "(**(code **)(puVar24 + 0x207dc))" ( (pointer_expression "**(code **)(puVar24 + 0x207dc)" * (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) )) (argument_list "(puStack_88)" ( identifier ))) ;) (expression_statement "iVar7 = aiStack_94[0];" (assignment_expression "iVar7 = aiStack_94[0]" identifier = (subscript_expression "aiStack_94[0]" identifier [ number_literal ])) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (if_statement "if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;" if (parenthesized_expression "(((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0))" ( (binary_expression "((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)" (parenthesized_expression "((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0))" ( (binary_expression "(aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)" (parenthesized_expression "(aiStack_94[0] != 0)" ( (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(iVar7 = iVar12, iVar12 != 0)" ( (comma_expression "iVar7 = iVar12, iVar12 != 0" (assignment_expression "iVar7 = iVar12" identifier = identifier) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar7 = iVar13, iVar13 != 0)" ( (comma_expression "iVar7 = iVar13, iVar13 != 0" (assignment_expression "iVar7 = iVar13" identifier = identifier) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);" (assignment_expression "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar8)" ( (binary_expression "*(int *)(iVar5 + 0x74) + iVar8" (pointer_expression "*(int *)(iVar5 + 0x74)" * (cast_expression "(int *)(iVar5 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) + identifier) )))) ;) (goto_statement "goto LAB_0001fd9c;" goto statement_identifier ;) })) }) (else_clause "else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" else (compound_statement "{\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" { (expression_statement "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);" (assignment_expression "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7)" identifier = (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar12 = *piVar22;" (assignment_expression "iVar12 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);" (assignment_expression "piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4)" identifier = (pointer_expression "*(int **)(piVar23[3] + (int)piVar21 * 4)" * (cast_expression "(int **)(piVar23[3] + (int)piVar21 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23[3] + (int)piVar21 * 4)" ( (binary_expression "piVar23[3] + (int)piVar21 * 4" (subscript_expression "piVar23[3]" identifier [ number_literal ]) + (binary_expression "(int)piVar21 * 4" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }" { (expression_statement "aiStack_94[1] = 1;" (assignment_expression "aiStack_94[1] = 1" (subscript_expression "aiStack_94[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_94[2] = 1;" (assignment_expression "aiStack_94[2] = 1" (subscript_expression "aiStack_94[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar24 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x20774))" ( (pointer_expression "**(code **)(puVar24 + 0x20774)" * (pointer_expression "*(code **)(puVar24 + 0x20774)" * (cast_expression "(code **)(puVar24 + 0x20774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x20774)" ( (binary_expression "puVar24 + 0x20774" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }" if (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" ( (binary_expression "puStack_88 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }" { (labeled_statement "LAB_0001ff68:\n                  iVar7 = 0xc;" statement_identifier : (expression_statement "iVar7 = 0xc;" (assignment_expression "iVar7 = 0xc" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "*puStack_88 = piVar17;" (assignment_expression "*puStack_88 = piVar17" (pointer_expression "*puStack_88" * identifier) = identifier) ;) (expression_statement "aiStack_94[0] = 0;" (assignment_expression "aiStack_94[0] = 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0001fd48:\n                piVar19 = aiStack_94 + 1;" statement_identifier : (expression_statement "piVar19 = aiStack_94 + 1;" (assignment_expression "piVar19 = aiStack_94 + 1" identifier = (binary_expression "aiStack_94 + 1" identifier + number_literal)) ;)) (expression_statement "piVar18 = piVar23;" (assignment_expression "piVar18 = piVar23" identifier = identifier) ;) (expression_statement "iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);" (assignment_expression "iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94)" identifier = (call_expression "(*(code *)(iVar9 + -0x8c4))(aiStack_94)" (parenthesized_expression "(*(code *)(iVar9 + -0x8c4))" ( (pointer_expression "*(code *)(iVar9 + -0x8c4)" * (cast_expression "(code *)(iVar9 + -0x8c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x8c4)" ( (binary_expression "iVar9 + -0x8c4" identifier + number_literal) )))) )) (argument_list "(aiStack_94)" ( identifier )))) ;) (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) ;) (expression_statement "*piVar22 = iVar12;" (assignment_expression "*piVar22 = iVar12" (pointer_expression "*piVar22" * identifier) = identifier) ;) (expression_statement "(*pcVar25)(puStack_88);" (call_expression "(*pcVar25)(puStack_88)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puStack_88)" ( identifier ))) ;) (if_statement "if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;" if (parenthesized_expression "((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0))" ( (binary_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0" (pointer_expression "*(int *)(*(int *)(iVar5 + 100) + iVar7)" * (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) == number_literal) )) && (parenthesized_expression "(iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)" ( (comma_expression "iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0" (assignment_expression "iVar7 = aiStack_94[0]" identifier = (subscript_expression "aiStack_94[0]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar22, aiStack_94[0] != 0" (assignment_expression "piVar21 = piVar22" identifier = identifier) , (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) != number_literal))) ))) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" else (compound_statement "{\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" { (expression_statement "piVar18 = (int *)(iVar12 + 0xc);" (assignment_expression "piVar18 = (int *)(iVar12 + 0xc)" identifier = (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) ;) (expression_statement "piVar19 = piVar17;" (assignment_expression "piVar19 = piVar17" identifier = identifier) ;) (expression_statement "iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));" (assignment_expression "iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8))" identifier = (call_expression "FUN_0001d8b0(*(undefined4 *)(iVar12 + 8))" identifier (argument_list "(*(undefined4 *)(iVar12 + 8))" ( (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }" { (expression_statement "aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);" (assignment_expression "aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4)" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = (call_expression "(*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4)" (parenthesized_expression "(*(code *)(iVar10 + -4000))" ( (pointer_expression "*(code *)(iVar10 + -4000)" * (cast_expression "(code *)(iVar10 + -4000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -4000)" ( (binary_expression "iVar10 + -4000" identifier + number_literal) )))) )) (argument_list "(aiStack_94 + 1,iVar12 + 4)" ( (binary_expression "aiStack_94 + 1" identifier + number_literal) , (binary_expression "iVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);" (assignment_expression "iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1)" identifier = (call_expression "(*(code *)(iVar11 + -0x4558))(aiStack_94 + 1)" (parenthesized_expression "(*(code *)(iVar11 + -0x4558))" ( (pointer_expression "*(code *)(iVar11 + -0x4558)" * (cast_expression "(code *)(iVar11 + -0x4558)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x4558)" ( (binary_expression "iVar11 + -0x4558" identifier + number_literal) )))) )) (argument_list "(aiStack_94 + 1)" ( (binary_expression "aiStack_94 + 1" identifier + number_literal) )))) ;) (if_statement "if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" if (parenthesized_expression "(aiStack_94[0] == 0)" ( (binary_expression "aiStack_94[0] == 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }" { (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }" { (expression_statement "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);" (assignment_expression "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7)" identifier = (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" ( (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) + identifier) )))) ;) (goto_statement "goto LAB_0001fd48;" goto statement_identifier ;) })) }) (else_clause "else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" else (compound_statement "{\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" { (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207dc)" * (cast_expression "(code **)(puVar24 + 0x207dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207dc)" ( (binary_expression "puVar24 + 0x207dc" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar25)(puStack_88);" (call_expression "(*pcVar25)(puStack_88)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puStack_88)" ( identifier ))) ;) (expression_statement "iVar7 = aiStack_94[0];" (assignment_expression "iVar7 = aiStack_94[0]" identifier = (subscript_expression "aiStack_94[0]" identifier [ number_literal ])) ;) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" identifier = identifier) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (if_statement "if (aiStack_94[0] == 0) goto LAB_0001ff68;" if (parenthesized_expression "(aiStack_94[0] == 0)" ( (binary_expression "aiStack_94[0] == 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0001ff68;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }))) }))) })) (expression_statement "pcVar1 = (char *)(puVar15 + 4);" (assignment_expression "pcVar1 = (char *)(puVar15 + 4)" identifier = (cast_expression "(char *)(puVar15 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" identifier = identifier) ;) (expression_statement "puVar15 = puVar15 + 5;" (assignment_expression "puVar15 = puVar15 + 5" identifier = (binary_expression "puVar15 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar1 != '\0')" ( (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;)) }))) })) })) (if_statement "if (iStack_84 == *piVar6) {\n    return iVar7;\n  }" if (parenthesized_expression "(iStack_84 == *piVar6)" ( (binary_expression "iStack_84 == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207b0);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207b0)" identifier = (pointer_expression "*(code **)(puVar24 + 0x207b0)" * (cast_expression "(code **)(puVar24 + 0x207b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x207b0)" ( (binary_expression "puVar24 + 0x207b0" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_84;" (assignment_expression "iVar5 = iStack_84" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *piVar18;" (assignment_expression "iVar7 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar22 = *(int **)(iVar5 + 0x54);" (assignment_expression "piVar22 = *(int **)(iVar5 + 0x54)" identifier = (pointer_expression "*(int **)(iVar5 + 0x54)" * (cast_expression "(int **)(iVar5 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);" do (compound_statement "{\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    }" { (while_statement "while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }" { (expression_statement "iVar9 = *(int *)(*piVar19 + iVar8 * 4);" (assignment_expression "iVar9 = *(int *)(*piVar19 + iVar8 * 4)" identifier = (pointer_expression "*(int *)(*piVar19 + iVar8 * 4)" * (cast_expression "(int *)(*piVar19 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar8 * 4)" ( (binary_expression "*piVar19 + iVar8 * 4" (pointer_expression "*piVar19" * identifier) + (binary_expression "iVar8 * 4" identifier * number_literal)) ))))) ;) (expression_statement "puVar14 = (uint *)(*piVar22 + iVar9 * 8);" (assignment_expression "puVar14 = (uint *)(*piVar22 + iVar9 * 8)" identifier = (cast_expression "(uint *)(*piVar22 + iVar9 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar9 * 8)" ( (binary_expression "*piVar22 + iVar9 * 8" (pointer_expression "*piVar22" * identifier) + (binary_expression "iVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;" if (parenthesized_expression "(((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0))" ( (binary_expression "((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)" (parenthesized_expression "((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20))" ( (binary_expression "(*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)" (parenthesized_expression "(*(char *)(puVar14 + 1) == '\b')" ( (binary_expression "*(char *)(puVar14 + 1) == '\b'" (pointer_expression "*(char *)(puVar14 + 1)" * (cast_expression "(char *)(puVar14 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) == (char_literal "'\b'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar16 = *puVar14, (int)uVar16 < 0x20)" ( (comma_expression "uVar16 = *puVar14, (int)uVar16 < 0x20" (assignment_expression "uVar16 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) , (binary_expression "(int)uVar16 < 0x20" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) && (parenthesized_expression "(((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)" ( (binary_expression "((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1)" ( (binary_expression "(uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1" (binary_expression "(uint)piVar22[0x14] >> (uVar16 & 0x1f)" (cast_expression "(uint)piVar22[0x14]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[0x14]" identifier [ number_literal ])) >> (parenthesized_expression "(uVar16 & 0x1f)" ( (binary_expression "uVar16 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (iVar7 <= iVar8) {\n          return 0;\n        }" if (parenthesized_expression "(iVar7 <= iVar8)" ( (binary_expression "iVar7 <= iVar8" identifier <= identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar10 = *(int *)(iVar5 + 0x7c);" (assignment_expression "iVar10 = *(int *)(iVar5 + 0x7c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x7c)" * (cast_expression "(int *)(iVar5 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x84);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x84)" identifier = (pointer_expression "*(int *)(iVar5 + 0x84)" * (cast_expression "(int *)(iVar5 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x84)" ( (binary_expression "iVar5 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }" if (parenthesized_expression "(iVar10 == *(int *)(iVar5 + 0x80))" ( (binary_expression "iVar10 == *(int *)(iVar5 + 0x80)" identifier == (pointer_expression "*(int *)(iVar5 + 0x80)" * (cast_expression "(int *)(iVar5 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x80)" ( (binary_expression "iVar5 + 0x80" identifier + number_literal) ))))) )) (compound_statement "{\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }" { (expression_statement "iVar11 = iVar10 << 1;" (assignment_expression "iVar11 = iVar10 << 1" identifier = (binary_expression "iVar10 << 1" identifier << number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);" (assignment_expression "iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3)" identifier = (call_expression "(**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3)" (parenthesized_expression "(**(code **)(pcVar25 + 0x20334))" ( (pointer_expression "**(code **)(pcVar25 + 0x20334)" * (pointer_expression "*(code **)(pcVar25 + 0x20334)" * (cast_expression "(code **)(pcVar25 + 0x20334)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x20334)" ( (binary_expression "pcVar25 + 0x20334" identifier + number_literal) ))))) )) (argument_list "(iVar7,iVar10 << 3)" ( identifier , (binary_expression "iVar10 << 3" identifier << number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n          return 0xc;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0xc;\n        }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "iVar10 = *(int *)(iVar5 + 0x7c);" (assignment_expression "iVar10 = *(int *)(iVar5 + 0x7c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x7c)" * (cast_expression "(int *)(iVar5 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar5 + 0x84) = iVar7;" (assignment_expression "*(int *)(iVar5 + 0x84) = iVar7" (pointer_expression "*(int *)(iVar5 + 0x84)" * (cast_expression "(int *)(iVar5 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x84)" ( (binary_expression "iVar5 + 0x84" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x80) = iVar11;" (assignment_expression "*(int *)(iVar5 + 0x80) = iVar11" (pointer_expression "*(int *)(iVar5 + 0x80)" * (cast_expression "(int *)(iVar5 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x80)" ( (binary_expression "iVar5 + 0x80" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);" (assignment_expression "puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar25 + 0x20288))(1,0x18)" (parenthesized_expression "(**(code **)(pcVar25 + 0x20288))" ( (pointer_expression "**(code **)(pcVar25 + 0x20288)" * (pointer_expression "*(code **)(pcVar25 + 0x20288)" * (cast_expression "(code **)(pcVar25 + 0x20288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x20288)" ( (binary_expression "pcVar25 + 0x20288" identifier + number_literal) ))))) )) (argument_list "(1,0x18)" ( number_literal , number_literal ))))) ;) (expression_statement "*(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;" (assignment_expression "*(undefined4 **)(iVar7 + iVar10 * 4) = puVar15" (pointer_expression "*(undefined4 **)(iVar7 + iVar10 * 4)" * (cast_expression "(undefined4 **)(iVar7 + iVar10 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + iVar10 * 4)" ( (binary_expression "iVar7 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0xc;\n      }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "*(int *)(iVar5 + 0x7c) = iVar10 + 1;" (assignment_expression "*(int *)(iVar5 + 0x7c) = iVar10 + 1" (pointer_expression "*(int *)(iVar5 + 0x7c)" * (cast_expression "(int *)(iVar5 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar15[1] = iVar9;" (assignment_expression "puVar15[1] = iVar9" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar15 = piVar21;" (assignment_expression "*puVar15 = piVar21" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "iVar7 = *piVar18;" (assignment_expression "iVar7 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) }) while (parenthesized_expression "(iVar8 < iVar7)" ( (binary_expression "iVar8 < iVar7" identifier < identifier) )) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 *)) ) LIT)) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (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 IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression 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 *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = 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 *)) ) (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 IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return 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 *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) / LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT)) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) / LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_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) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * 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) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ]) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (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) )))) + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (break_statement break ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( 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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT))) ))) )) (break_statement break ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) (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 ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression 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 ]) == LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) }))) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;)) }))) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (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 , (binary_expression IDENT << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (return_statement return LIT ;) })))
(function_definition "int FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}" (primitive_type "int") (function_declarator "FUN_0001fa10(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" (identifier "FUN_0001fa10") (parameter_list "(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  char *pcVar1;\n  bool bVar2;\n  int *piVar3;\n  undefined *puVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  uint *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  undefined4 *unaff_s0;\n  int *piVar21;\n  int *unaff_s1;\n  int *unaff_s2;\n  int *unaff_s3;\n  int *piVar22;\n  undefined *unaff_s4;\n  undefined4 *unaff_s5;\n  undefined *unaff_s7;\n  int *piVar23;\n  undefined *puVar24;\n  int *unaff_s8;\n  code *pcVar25;\n  int aiStack_94 [3];\n  undefined4 *puStack_88;\n  int iStack_84;\n  undefined4 *puStack_80;\n  int *piStack_7c;\n  int *piStack_78;\n  int *piStack_74;\n  undefined *puStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  undefined *puStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  int *piStack_4c;\n  int local_3c;\n  int aiStack_38 [2];\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00040330;\n  local_2c = *(int *)PTR___stack_chk_guard_00040330;\n  piVar22 = param_4;\n  if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }\nLAB_0001fb14:\n  iVar5 = 0;\n  param_4 = unaff_s3;\n  param_1 = unaff_s5;\nLAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }\n  pcVar25 = FUN_0001fb60;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_00040310;\n  (*(code *)PTR___stack_chk_fail_00040310)();\n  piVar6 = *(int **)(puVar24 + 0x207d0);\n  puStack_68 = puVar4;\n  iStack_84 = *piVar6;\n  piVar18 = (int *)0x0;\n  piVar23 = *(int **)(iVar5 + 0x6c);\n  piVar19 = param_3;\n  piVar21 = piVar22;\n  while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }\nLAB_0001fc4c:\n  iVar7 = 0;\n  puStack_80 = unaff_s0;\n  piStack_7c = unaff_s1;\n  piStack_78 = unaff_s2;\n  piStack_74 = param_4;\n  puStack_70 = unaff_s4;\n  puStack_6c = param_1;\n  puStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar25;\n  piStack_4c = piVar22;\n  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }\n  if (iStack_84 == *piVar6) {\n    return iVar7;\n  }\n  pcVar25 = *(code **)(puVar24 + 0x207b0);\n  iVar5 = iStack_84;\n  (*pcVar25)();\n  iVar7 = *piVar18;\n  piVar22 = *(int **)(iVar5 + 0x54);\n  if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }\n  return 0;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "undefined4 *unaff_s0;" (type_identifier "undefined4") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "int *unaff_s1;" (primitive_type "int") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "int *unaff_s2;" (primitive_type "int") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "int *unaff_s3;" (primitive_type "int") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "undefined *unaff_s4;" (type_identifier "undefined") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "undefined4 *unaff_s5;" (type_identifier "undefined4") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined *unaff_s7;" (type_identifier "undefined") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "int *unaff_s8;" (primitive_type "int") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "int aiStack_94 [3];" (primitive_type "int") (array_declarator "aiStack_94 [3]" (identifier "aiStack_94") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 *puStack_88;" (type_identifier "undefined4") (pointer_declarator "*puStack_88" (* "*") (identifier "puStack_88")) (; ";")) (declaration "int iStack_84;" (primitive_type "int") (identifier "iStack_84") (; ";")) (declaration "undefined4 *puStack_80;" (type_identifier "undefined4") (pointer_declarator "*puStack_80" (* "*") (identifier "puStack_80")) (; ";")) (declaration "int *piStack_7c;" (primitive_type "int") (pointer_declarator "*piStack_7c" (* "*") (identifier "piStack_7c")) (; ";")) (declaration "int *piStack_78;" (primitive_type "int") (pointer_declarator "*piStack_78" (* "*") (identifier "piStack_78")) (; ";")) (declaration "int *piStack_74;" (primitive_type "int") (pointer_declarator "*piStack_74" (* "*") (identifier "piStack_74")) (; ";")) (declaration "undefined *puStack_70;" (type_identifier "undefined") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "undefined4 *puStack_6c;" (type_identifier "undefined4") (pointer_declarator "*puStack_6c" (* "*") (identifier "puStack_6c")) (; ";")) (declaration "undefined *puStack_68;" (type_identifier "undefined") (pointer_declarator "*puStack_68" (* "*") (identifier "puStack_68")) (; ";")) (declaration "undefined *puStack_64;" (type_identifier "undefined") (pointer_declarator "*puStack_64" (* "*") (identifier "puStack_64")) (; ";")) (declaration "int *piStack_60;" (primitive_type "int") (pointer_declarator "*piStack_60" (* "*") (identifier "piStack_60")) (; ";")) (declaration "code *pcStack_5c;" (type_identifier "code") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "int *piStack_4c;" (primitive_type "int") (pointer_declarator "*piStack_4c" (* "*") (identifier "piStack_4c")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int aiStack_38 [2];" (primitive_type "int") (array_declarator "aiStack_38 [2]" (identifier "aiStack_38") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_00040330;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00040330" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_00040330")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00040330;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00040330" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00040330" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00040330" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00040330")))) (; ";")) (expression_statement "piVar22 = param_4;" (assignment_expression "piVar22 = param_4" (identifier "piVar22") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (0 < (int)param_4) {\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }" (if "if") (parenthesized_expression "(0 < (int)param_4)" (( "(") (binary_expression "0 < (int)param_4" (number_literal "0") (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (compound_statement "{\n    unaff_s2 = (int *)0x0;\n    unaff_s8 = aiStack_38;\n    unaff_s4 = PTR_LAB_000401f4 + -0xed0;\n    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;\n    unaff_s0 = param_2;\n    unaff_s1 = param_3;\n    do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);\n  }" ({ "{") (expression_statement "unaff_s2 = (int *)0x0;" (assignment_expression "unaff_s2 = (int *)0x0" (identifier "unaff_s2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s8 = aiStack_38;" (assignment_expression "unaff_s8 = aiStack_38" (identifier "unaff_s8") (= "=") (identifier "aiStack_38")) (; ";")) (expression_statement "unaff_s4 = PTR_LAB_000401f4 + -0xed0;" (assignment_expression "unaff_s4 = PTR_LAB_000401f4 + -0xed0" (identifier "unaff_s4") (= "=") (binary_expression "PTR_LAB_000401f4 + -0xed0" (identifier "PTR_LAB_000401f4") (+ "+") (number_literal "-0xed0"))) (; ";")) (expression_statement "unaff_s7 = PTR_LAB_000401f4 + -0x8c4;" (assignment_expression "unaff_s7 = PTR_LAB_000401f4 + -0x8c4" (identifier "unaff_s7") (= "=") (binary_expression "PTR_LAB_000401f4 + -0x8c4" (identifier "PTR_LAB_000401f4") (+ "+") (number_literal "-0x8c4"))) (; ";")) (expression_statement "unaff_s0 = param_2;" (assignment_expression "unaff_s0 = param_2" (identifier "unaff_s0") (= "=") (identifier "param_2")) (; ";")) (expression_statement "unaff_s1 = param_3;" (assignment_expression "unaff_s1 = param_3" (identifier "unaff_s1") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    } while (param_4 != unaff_s2);" (do "do") (compound_statement "{\n      while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }\n      bVar2 = param_3 != (int *)0x0;\n      param_3 = param_3 + 1;\n      if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }\n      unaff_s2 = (int *)((int)unaff_s2 + 1);\n      unaff_s0 = unaff_s0 + 1;\n      unaff_s1 = unaff_s1 + 1;\n    }" ({ "{") (while_statement "while( true ) {\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        param_2 = (undefined4 *)*unaff_s0;\n        param_3 = (int *)*unaff_s1;\n        unaff_s3 = param_4;\n        unaff_s5 = param_1;\n        if (param_2 != (undefined4 *)0x0) break;\n        unaff_s2 = (int *)((int)unaff_s2 + 1);\n        *unaff_s0 = param_3;\n        unaff_s1 = unaff_s1 + 1;\n        unaff_s0 = unaff_s0 + 1;\n        if (param_4 == unaff_s2) goto LAB_0001fb14;\n      }" ({ "{") (expression_statement "param_2 = (undefined4 *)*unaff_s0;" (assignment_expression "param_2 = (undefined4 *)*unaff_s0" (identifier "param_2") (= "=") (cast_expression "(undefined4 *)*unaff_s0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*unaff_s0" (* "*") (identifier "unaff_s0")))) (; ";")) (expression_statement "param_3 = (int *)*unaff_s1;" (assignment_expression "param_3 = (int *)*unaff_s1" (identifier "param_3") (= "=") (cast_expression "(int *)*unaff_s1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1")))) (; ";")) (expression_statement "unaff_s3 = param_4;" (assignment_expression "unaff_s3 = param_4" (identifier "unaff_s3") (= "=") (identifier "param_4")) (; ";")) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" (identifier "unaff_s5") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (param_2 != (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(param_2 != (undefined4 *)0x0)" (( "(") (binary_expression "param_2 != (undefined4 *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "unaff_s2 = (int *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (int *)((int)unaff_s2 + 1)" (identifier "unaff_s2") (= "=") (cast_expression "(int *)((int)unaff_s2 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s2 + 1)" (( "(") (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*unaff_s0 = param_3;" (assignment_expression "*unaff_s0 = param_3" (pointer_expression "*unaff_s0" (* "*") (identifier "unaff_s0")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s1 + 1" (identifier "unaff_s1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" (identifier "unaff_s0") (= "=") (binary_expression "unaff_s0 + 1" (identifier "unaff_s0") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_4 == unaff_s2) goto LAB_0001fb14;" (if "if") (parenthesized_expression "(param_4 == unaff_s2)" (( "(") (binary_expression "param_4 == unaff_s2" (identifier "param_4") (== "==") (identifier "unaff_s2")) () ")")) (goto_statement "goto LAB_0001fb14;" (goto "goto") (statement_identifier "LAB_0001fb14") (; ";"))) (} "}"))) (expression_statement "bVar2 = param_3 != (int *)0x0;" (assignment_expression "bVar2 = param_3 != (int *)0x0" (identifier "bVar2") (= "=") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar2) {\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n        param_2 = param_2 + 1;\n        local_3c = FUN_0001f130(unaff_s8);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n        param_2 = param_1;\n        param_3 = unaff_s8;\n        uVar20 = FUN_0001f73c(&local_3c);\n        puVar24 = PTR_free_0004033c;\n        *unaff_s0 = uVar20;\n        (*(code *)puVar24)(local_30);\n        iVar5 = local_3c;\n        if (local_3c != 0) goto LAB_0001fb18;\n      }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_3c = FUN_0001f130(unaff_s8);" (assignment_expression "local_3c = FUN_0001f130(unaff_s8)" (identifier "local_3c") (= "=") (call_expression "FUN_0001f130(unaff_s8)" (identifier "FUN_0001f130") (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")")))) (; ";")) (expression_statement "iVar5 = local_3c;" (assignment_expression "iVar5 = local_3c" (identifier "iVar5") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (local_3c != 0) goto LAB_0001fb18;" (if "if") (parenthesized_expression "(local_3c != 0)" (( "(") (binary_expression "local_3c != 0" (identifier "local_3c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001fb18;" (goto "goto") (statement_identifier "LAB_0001fb18") (; ";"))) (expression_statement "param_2 = param_1;" (assignment_expression "param_2 = param_1" (identifier "param_2") (= "=") (identifier "param_1")) (; ";")) (expression_statement "param_3 = unaff_s8;" (assignment_expression "param_3 = unaff_s8" (identifier "param_3") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "uVar20 = FUN_0001f73c(&local_3c);" (assignment_expression "uVar20 = FUN_0001f73c(&local_3c)" (identifier "uVar20") (= "=") (call_expression "FUN_0001f73c(&local_3c)" (identifier "FUN_0001f73c") (argument_list "(&local_3c)" (( "(") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "puVar24 = PTR_free_0004033c;" (assignment_expression "puVar24 = PTR_free_0004033c" (identifier "puVar24") (= "=") (identifier "PTR_free_0004033c")) (; ";")) (expression_statement "*unaff_s0 = uVar20;" (assignment_expression "*unaff_s0 = uVar20" (pointer_expression "*unaff_s0" (* "*") (identifier "unaff_s0")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "(*(code *)puVar24)(local_30);" (call_expression "(*(code *)puVar24)(local_30)" (parenthesized_expression "(*(code *)puVar24)" (( "(") (pointer_expression "*(code *)puVar24" (* "*") (cast_expression "(code *)puVar24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar24"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "iVar5 = local_3c;" (assignment_expression "iVar5 = local_3c" (identifier "iVar5") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (local_3c != 0) goto LAB_0001fb18;" (if "if") (parenthesized_expression "(local_3c != 0)" (( "(") (binary_expression "local_3c != 0" (identifier "local_3c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001fb18;" (goto "goto") (statement_identifier "LAB_0001fb18") (; ";"))) (} "}"))) (expression_statement "unaff_s2 = (int *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (int *)((int)unaff_s2 + 1)" (identifier "unaff_s2") (= "=") (cast_expression "(int *)((int)unaff_s2 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s2 + 1)" (( "(") (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" (identifier "unaff_s0") (= "=") (binary_expression "unaff_s0 + 1" (identifier "unaff_s0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s1 = unaff_s1 + 1;" (assignment_expression "unaff_s1 = unaff_s1 + 1" (identifier "unaff_s1") (= "=") (binary_expression "unaff_s1 + 1" (identifier "unaff_s1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 != unaff_s2)" (( "(") (binary_expression "param_4 != unaff_s2" (identifier "param_4") (!= "!=") (identifier "unaff_s2")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0001fb14:\n  iVar5 = 0;" (statement_identifier "LAB_0001fb14") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";"))) (expression_statement "param_4 = unaff_s3;" (assignment_expression "param_4 = unaff_s3" (identifier "param_4") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "param_1 = unaff_s5;" (assignment_expression "param_1 = unaff_s5" (identifier "param_1") (= "=") (identifier "unaff_s5")) (; ";")) (labeled_statement "LAB_0001fb18:\n  if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }" (statement_identifier "LAB_0001fb18") (: ":") (if_statement "if (local_2c == *(int *)puVar4) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar4)" (( "(") (binary_expression "local_2c == *(int *)puVar4" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))) (expression_statement "pcVar25 = FUN_0001fb60;" (assignment_expression "pcVar25 = FUN_0001fb60" (identifier "pcVar25") (= "=") (identifier "FUN_0001fb60")) (; ";")) (expression_statement "iVar5 = local_2c;" (assignment_expression "iVar5 = local_2c" (identifier "iVar5") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar24 = PTR___stack_chk_fail_00040310;" (assignment_expression "puVar24 = PTR___stack_chk_fail_00040310" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_fail_00040310")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00040310)();" (call_expression "(*(code *)PTR___stack_chk_fail_00040310)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00040310)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00040310" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00040310" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00040310"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(puVar24 + 0x207d0);" (assignment_expression "piVar6 = *(int **)(puVar24 + 0x207d0)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar24 + 0x207d0)" (* "*") (cast_expression "(int **)(puVar24 + 0x207d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x207d0)" (( "(") (binary_expression "puVar24 + 0x207d0" (identifier "puVar24") (+ "+") (number_literal "0x207d0")) () ")"))))) (; ";")) (expression_statement "puStack_68 = puVar4;" (assignment_expression "puStack_68 = puVar4" (identifier "puStack_68") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "iStack_84 = *piVar6;" (assignment_expression "iStack_84 = *piVar6" (identifier "iStack_84") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar23 = *(int **)(iVar5 + 0x6c);" (assignment_expression "piVar23 = *(int **)(iVar5 + 0x6c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(iVar5 + 0x6c)" (* "*") (cast_expression "(int **)(iVar5 + 0x6c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x6c)" (( "(") (binary_expression "iVar5 + 0x6c" (identifier "iVar5") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "piVar19 = param_3;" (assignment_expression "piVar19 = param_3" (identifier "piVar19") (= "=") (identifier "param_3")) (; ";")) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" (identifier "piVar21") (= "=") (identifier "piVar22")) (; ";")) (while_statement "while ((int)piVar18 < (int)piVar23) {\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }" (while "while") (parenthesized_expression "((int)piVar18 < (int)piVar23)" (( "(") (binary_expression "(int)piVar18 < (int)piVar23" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (< "<") (cast_expression "(int)piVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar23"))) () ")")) (compound_statement "{\n    piVar19 = *(int **)(iVar5 + 0x74);\n    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);\n    iVar7 = piVar19[(int)piVar17 * 5 + 1];\n    while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }\n    piVar21 = piVar3;\n    piVar18 = (int *)((int)piVar3 + 1);\n  }" ({ "{") (expression_statement "piVar19 = *(int **)(iVar5 + 0x74);" (assignment_expression "piVar19 = *(int **)(iVar5 + 0x74)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(iVar5 + 0x74)" (* "*") (cast_expression "(int **)(iVar5 + 0x74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x74)" (( "(") (binary_expression "iVar5 + 0x74" (identifier "iVar5") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);" (assignment_expression "piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2)" (identifier "piVar17") (= "=") (cast_expression "(int *)((int)((int)piVar18 + (int)piVar23) / 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)((int)piVar18 + (int)piVar23) / 2)" (( "(") (binary_expression "(int)((int)piVar18 + (int)piVar23) / 2" (cast_expression "(int)((int)piVar18 + (int)piVar23)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)piVar18 + (int)piVar23)" (( "(") (binary_expression "(int)piVar18 + (int)piVar23" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (+ "+") (cast_expression "(int)piVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar23"))) () ")"))) (/ "/") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iVar7 = piVar19[(int)piVar17 * 5 + 1];" (assignment_expression "iVar7 = piVar19[(int)piVar17 * 5 + 1]" (identifier "iVar7") (= "=") (subscript_expression "piVar19[(int)piVar17 * 5 + 1]" (identifier "piVar19") ([ "[") (binary_expression "(int)piVar17 * 5 + 1" (binary_expression "(int)piVar17 * 5" (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17")) (* "*") (number_literal "5")) (+ "+") (number_literal "1")) (] "]"))) (; ";")) (while_statement "while (piVar3 = piVar17, (int)param_3 <= iVar7) {\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }" (while "while") (parenthesized_expression "(piVar3 = piVar17, (int)param_3 <= iVar7)" (( "(") (comma_expression "piVar3 = piVar17, (int)param_3 <= iVar7" (assignment_expression "piVar3 = piVar17" (identifier "piVar3") (= "=") (identifier "piVar17")) (, ",") (binary_expression "(int)param_3 <= iVar7" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<= "<=") (identifier "iVar7"))) () ")")) (compound_statement "{\n      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;\n      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);\n      piVar17 = piVar21;\n      piVar23 = piVar3;\n      iVar7 = piVar19[(int)piVar21 * 5 + 1];\n    }" ({ "{") (if_statement "if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;" (if "if") (parenthesized_expression "((int)piVar3 <= (int)piVar18)" (( "(") (binary_expression "(int)piVar3 <= (int)piVar18" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (<= "<=") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18"))) () ")")) (goto_statement "goto LAB_0001fc4c;" (goto "goto") (statement_identifier "LAB_0001fc4c") (; ";"))) (expression_statement "piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);" (assignment_expression "piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2)" (identifier "piVar21") (= "=") (cast_expression "(int *)((int)((int)piVar18 + (int)piVar3) / 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)((int)piVar18 + (int)piVar3) / 2)" (( "(") (binary_expression "(int)((int)piVar18 + (int)piVar3) / 2" (cast_expression "(int)((int)piVar18 + (int)piVar3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)piVar18 + (int)piVar3)" (( "(") (binary_expression "(int)piVar18 + (int)piVar3" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (+ "+") (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3"))) () ")"))) (/ "/") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar17 = piVar21;" (assignment_expression "piVar17 = piVar21" (identifier "piVar17") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "piVar23 = piVar3;" (assignment_expression "piVar23 = piVar3" (identifier "piVar23") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "iVar7 = piVar19[(int)piVar21 * 5 + 1];" (assignment_expression "iVar7 = piVar19[(int)piVar21 * 5 + 1]" (identifier "iVar7") (= "=") (subscript_expression "piVar19[(int)piVar21 * 5 + 1]" (identifier "piVar19") ([ "[") (binary_expression "(int)piVar21 * 5 + 1" (binary_expression "(int)piVar21 * 5" (cast_expression "(int)piVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar21")) (* "*") (number_literal "5")) (+ "+") (number_literal "1")) (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar21 = piVar3;" (assignment_expression "piVar21 = piVar3" (identifier "piVar21") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "piVar18 = (int *)((int)piVar3 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar3 + 1)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar3 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 1)" (( "(") (binary_expression "(int)piVar3 + 1" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_0001fc4c:\n  iVar7 = 0;" (statement_identifier "LAB_0001fc4c") (: ":") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";"))) (expression_statement "puStack_80 = unaff_s0;" (assignment_expression "puStack_80 = unaff_s0" (identifier "puStack_80") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "piStack_7c = unaff_s1;" (assignment_expression "piStack_7c = unaff_s1" (identifier "piStack_7c") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "piStack_78 = unaff_s2;" (assignment_expression "piStack_78 = unaff_s2" (identifier "piStack_78") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "piStack_74 = param_4;" (assignment_expression "piStack_74 = param_4" (identifier "piStack_74") (= "=") (identifier "param_4")) (; ";")) (expression_statement "puStack_70 = unaff_s4;" (assignment_expression "puStack_70 = unaff_s4" (identifier "puStack_70") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "puStack_6c = param_1;" (assignment_expression "puStack_6c = param_1" (identifier "puStack_6c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_64 = unaff_s7;" (assignment_expression "puStack_64 = unaff_s7" (identifier "puStack_64") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "piStack_60 = unaff_s8;" (assignment_expression "piStack_60 = unaff_s8" (identifier "piStack_60") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_5c = pcVar25;" (assignment_expression "pcStack_5c = pcVar25" (identifier "pcStack_5c") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "piStack_4c = piVar22;" (assignment_expression "piStack_4c = piVar22" (identifier "piStack_4c") (= "=") (identifier "piVar22")) (; ";")) (if_statement "if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" (if "if") (parenthesized_expression "((int)piVar18 < (int)*(int **)(iVar5 + 0x6c))" (( "(") (binary_expression "(int)piVar18 < (int)*(int **)(iVar5 + 0x6c)" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (< "<") (cast_expression "(int)*(int **)(iVar5 + 0x6c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(int **)(iVar5 + 0x6c)" (* "*") (cast_expression "(int **)(iVar5 + 0x6c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x6c)" (( "(") (binary_expression "iVar5 + 0x6c" (identifier "iVar5") (+ "+") (number_literal "0x6c")) () ")")))))) () ")")) (compound_statement "{\n    iVar8 = (int)piVar18 * 0x14;\n    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n    iVar7 = 0;\n    if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }\n  }" ({ "{") (expression_statement "iVar8 = (int)piVar18 * 0x14;" (assignment_expression "iVar8 = (int)piVar18 * 0x14" (identifier "iVar8") (= "=") (binary_expression "(int)piVar18 * 0x14" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (* "*") (number_literal "0x14"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);" (assignment_expression "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar8)" (( "(") (binary_expression "*(int *)(iVar5 + 0x74) + iVar8" (pointer_expression "*(int *)(iVar5 + 0x74)" (* "*") (cast_expression "(int *)(iVar5 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x74)" (( "(") (binary_expression "iVar5 + 0x74" (identifier "iVar5") (+ "+") (number_literal "0x74")) () ")")))) (+ "+") (identifier "iVar8")) () ")")))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 == (int *)puVar15[1]) {\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" (if "if") (parenthesized_expression "(param_3 == (int *)puVar15[1])" (( "(") (binary_expression "param_3 == (int *)puVar15[1]" (identifier "param_3") (== "==") (cast_expression "(int *)puVar15[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n      if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }\n    }" ({ "{") (if_statement "if (piVar18 == (int *)0xffffffff) {\n        iVar7 = 0;\n      }\n      else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" (if "if") (parenthesized_expression "(piVar18 == (int *)0xffffffff)" (( "(") (binary_expression "piVar18 == (int *)0xffffffff" (identifier "piVar18") (== "==") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n        iVar7 = 0;\n      }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" (else "else") (compound_statement "{\n        iVar9 = *(int *)(puVar24 + 0x20694);\n        piVar23 = *(int **)(iVar5 + 0x54);\n        iVar10 = *(int *)(puVar24 + 0x20694);\n        iVar11 = *(int *)(puVar24 + 0x20694);\n        piVar22 = piVar21;\nLAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar9 = *(int *)(puVar24 + 0x20694)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar24 + 0x20694)" (* "*") (cast_expression "(int *)(puVar24 + 0x20694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x20694)" (( "(") (binary_expression "puVar24 + 0x20694" (identifier "puVar24") (+ "+") (number_literal "0x20694")) () ")"))))) (; ";")) (expression_statement "piVar23 = *(int **)(iVar5 + 0x54);" (assignment_expression "piVar23 = *(int **)(iVar5 + 0x54)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(iVar5 + 0x54)" (* "*") (cast_expression "(int **)(iVar5 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x54)" (( "(") (binary_expression "iVar5 + 0x54" (identifier "iVar5") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x20694)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar24 + 0x20694)" (* "*") (cast_expression "(int *)(puVar24 + 0x20694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x20694)" (( "(") (binary_expression "puVar24 + 0x20694" (identifier "puVar24") (+ "+") (number_literal "0x20694")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar24 + 0x20694);" (assignment_expression "iVar11 = *(int *)(puVar24 + 0x20694)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar24 + 0x20694)" (* "*") (cast_expression "(int *)(puVar24 + 0x20694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x20694)" (( "(") (binary_expression "puVar24 + 0x20694" (identifier "puVar24") (+ "+") (number_literal "0x20694")) () ")"))))) (; ";")) (expression_statement "piVar22 = piVar21;" (assignment_expression "piVar22 = piVar21" (identifier "piVar22") (= "=") (identifier "piVar21")) (; ";")) (labeled_statement "LAB_0001fd9c:\n        do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');" (statement_identifier "LAB_0001fd9c") (: ":") (do_statement "do {\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        } while (*pcVar1 != '\0');" (do "do") (compound_statement "{\n          piVar19 = (int *)*puVar15;\n          uVar20 = param_2[1];\n          piVar18 = param_2 + 2;\n          piVar21 = piVar19;\n          iVar7 = FUN_0001d8b0(uVar20);\n          if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }\n          pcVar1 = (char *)(puVar15 + 4);\n          iVar7 = 0;\n          piVar21 = piVar22;\n          puVar15 = puVar15 + 5;\n        }" ({ "{") (expression_statement "piVar19 = (int *)*puVar15;" (assignment_expression "piVar19 = (int *)*puVar15" (identifier "piVar19") (= "=") (cast_expression "(int *)*puVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) (; ";")) (expression_statement "uVar20 = param_2[1];" (assignment_expression "uVar20 = param_2[1]" (identifier "uVar20") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar18 = param_2 + 2;" (assignment_expression "piVar18 = param_2 + 2" (identifier "piVar18") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar21 = piVar19;" (assignment_expression "piVar21 = piVar19" (identifier "piVar21") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "iVar7 = FUN_0001d8b0(uVar20);" (assignment_expression "iVar7 = FUN_0001d8b0(uVar20)" (identifier "iVar7") (= "=") (call_expression "FUN_0001d8b0(uVar20)" (identifier "FUN_0001d8b0") (argument_list "(uVar20)" (( "(") (identifier "uVar20") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));\n            iVar7 = (int)piVar17 * 4;\n            if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));" (assignment_expression "piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]))" (identifier "piVar17") (= "=") (cast_expression "(int *)((int)param_3 + (puVar15[3] - puVar15[2]))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + (puVar15[3] - puVar15[2]))" (( "(") (binary_expression "(int)param_3 + (puVar15[3] - puVar15[2])" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (parenthesized_expression "(puVar15[3] - puVar15[2])" (( "(") (binary_expression "puVar15[3] - puVar15[2]" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (- "-") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) () ")"))) () ")")))) (; ";")) (expression_statement "iVar7 = (int)piVar17 * 4;" (assignment_expression "iVar7 = (int)piVar17 * 4" (identifier "iVar7") (= "=") (binary_expression "(int)piVar17 * 4" (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17")) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (param_3 == piVar17) {\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }\n            else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(param_3 == piVar17)" (( "(") (binary_expression "param_3 == piVar17" (identifier "param_3") (== "==") (identifier "piVar17")) () ")")) (compound_statement "{\n              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);\n              piVar18 = param_2 + 2;\n              piVar19 = piVar21;\n              iVar7 = FUN_0001d8b0(uVar20);\n              if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }\n            }" ({ "{") (expression_statement "piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);" (assignment_expression "piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" (identifier "piVar21") (= "=") (cast_expression "(int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" (* "*") (pointer_expression "*(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" (* "*") (cast_expression "(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar23[5] + (int)piVar21 * 0xc + 8)" (( "(") (binary_expression "piVar23[5] + (int)piVar21 * 0xc + 8" (binary_expression "piVar23[5] + (int)piVar21 * 0xc" (subscript_expression "piVar23[5]" (identifier "piVar23") ([ "[") (number_literal "5") (] "]")) (+ "+") (binary_expression "(int)piVar21 * 0xc" (cast_expression "(int)piVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar21")) (* "*") (number_literal "0xc"))) (+ "+") (number_literal "8")) () ")"))))))) (; ";")) (expression_statement "piVar18 = param_2 + 2;" (assignment_expression "piVar18 = param_2 + 2" (identifier "piVar18") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar19 = piVar21;" (assignment_expression "piVar19 = piVar21" (identifier "piVar19") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "iVar7 = FUN_0001d8b0(uVar20);" (assignment_expression "iVar7 = FUN_0001d8b0(uVar20)" (identifier "iVar7") (= "=") (call_expression "FUN_0001d8b0(uVar20)" (identifier "FUN_0001d8b0") (argument_list "(uVar20)" (( "(") (identifier "uVar20") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }\n                piVar18 = aiStack_94 + 1;\n                piVar19 = piStack_4c;\n                piVar22 = (int *)&_gp_1;\n                iVar12 = FUN_0001e5c8(piVar23,piVar18);\n                iVar13 = FUN_0001e02c(param_2);\n                (**(code **)(puVar24 + 0x207dc))(puStack_88);\n                iVar7 = aiStack_94[0];\n                piVar21 = piVar22;\n                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;\n                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);\n                goto LAB_0001fd9c;\n              }" ({ "{") (expression_statement "aiStack_94[1] = 1;" (assignment_expression "aiStack_94[1] = 1" (subscript_expression "aiStack_94[1]" (identifier "aiStack_94") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "aiStack_94[2] = 1;" (assignment_expression "aiStack_94[2] = 1" (subscript_expression "aiStack_94[2]" (identifier "aiStack_94") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" (identifier "puStack_88") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar24 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x20774))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x20774)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x20774)" (* "*") (cast_expression "(code **)(puVar24 + 0x20774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x20774)" (( "(") (binary_expression "puVar24 + 0x20774" (identifier "puVar24") (+ "+") (number_literal "0x20774")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }\n                else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" (if "if") (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" (( "(") (binary_expression "puStack_88 == (undefined4 *)0x0" (identifier "puStack_88") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  aiStack_94[2] = 0;\n                  aiStack_94[0] = 0xc;\n                  aiStack_94[1] = 0;\n                }" ({ "{") (expression_statement "aiStack_94[2] = 0;" (assignment_expression "aiStack_94[2] = 0" (subscript_expression "aiStack_94[2]" (identifier "aiStack_94") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_94[0] = 0xc;" (assignment_expression "aiStack_94[0] = 0xc" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "aiStack_94[1] = 0;" (assignment_expression "aiStack_94[1] = 0" (subscript_expression "aiStack_94[1]" (identifier "aiStack_94") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" (else "else") (compound_statement "{\n                  *puStack_88 = piVar21;\n                  aiStack_94[0] = 0;\n                }" ({ "{") (expression_statement "*puStack_88 = piVar21;" (assignment_expression "*puStack_88 = piVar21" (pointer_expression "*puStack_88" (* "*") (identifier "puStack_88")) (= "=") (identifier "piVar21")) (; ";")) (expression_statement "aiStack_94[0] = 0;" (assignment_expression "aiStack_94[0] = 0" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "piVar18 = aiStack_94 + 1;" (assignment_expression "piVar18 = aiStack_94 + 1" (identifier "piVar18") (= "=") (binary_expression "aiStack_94 + 1" (identifier "aiStack_94") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar19 = piStack_4c;" (assignment_expression "piVar19 = piStack_4c" (identifier "piVar19") (= "=") (identifier "piStack_4c")) (; ";")) (expression_statement "piVar22 = (int *)&_gp_1;" (assignment_expression "piVar22 = (int *)&_gp_1" (identifier "piVar22") (= "=") (cast_expression "(int *)&_gp_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")))) (; ";")) (expression_statement "iVar12 = FUN_0001e5c8(piVar23,piVar18);" (assignment_expression "iVar12 = FUN_0001e5c8(piVar23,piVar18)" (identifier "iVar12") (= "=") (call_expression "FUN_0001e5c8(piVar23,piVar18)" (identifier "FUN_0001e5c8") (argument_list "(piVar23,piVar18)" (( "(") (identifier "piVar23") (, ",") (identifier "piVar18") () ")")))) (; ";")) (expression_statement "iVar13 = FUN_0001e02c(param_2);" (assignment_expression "iVar13 = FUN_0001e02c(param_2)" (identifier "iVar13") (= "=") (call_expression "FUN_0001e02c(param_2)" (identifier "FUN_0001e02c") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x207dc))(puStack_88);" (call_expression "(**(code **)(puVar24 + 0x207dc))(puStack_88)" (parenthesized_expression "(**(code **)(puVar24 + 0x207dc))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x207dc)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x207dc)" (* "*") (cast_expression "(code **)(puVar24 + 0x207dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x207dc)" (( "(") (binary_expression "puVar24 + 0x207dc" (identifier "puVar24") (+ "+") (number_literal "0x207dc")) () ")"))))) () ")")) (argument_list "(puStack_88)" (( "(") (identifier "puStack_88") () ")"))) (; ";")) (expression_statement "iVar7 = aiStack_94[0];" (assignment_expression "iVar7 = aiStack_94[0]" (identifier "iVar7") (= "=") (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" (identifier "piVar21") (= "=") (identifier "piVar22")) (; ";")) (if_statement "if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)) break;" (if "if") (parenthesized_expression "(((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0))" (( "(") (binary_expression "((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||\n                   (iVar7 = iVar13, iVar13 != 0)" (parenthesized_expression "((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0))" (( "(") (binary_expression "(aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)" (parenthesized_expression "(aiStack_94[0] != 0)" (( "(") (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = iVar12, iVar12 != 0)" (( "(") (comma_expression "iVar7 = iVar12, iVar12 != 0" (assignment_expression "iVar7 = iVar12" (identifier "iVar7") (= "=") (identifier "iVar12")) (, ",") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = iVar13, iVar13 != 0)" (( "(") (comma_expression "iVar7 = iVar13, iVar13 != 0" (assignment_expression "iVar7 = iVar13" (identifier "iVar7") (= "=") (identifier "iVar13")) (, ",") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);" (assignment_expression "puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x74) + iVar8)" (( "(") (binary_expression "*(int *)(iVar5 + 0x74) + iVar8" (pointer_expression "*(int *)(iVar5 + 0x74)" (* "*") (cast_expression "(int *)(iVar5 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x74)" (( "(") (binary_expression "iVar5 + 0x74" (identifier "iVar5") (+ "+") (number_literal "0x74")) () ")")))) (+ "+") (identifier "iVar8")) () ")")))) (; ";")) (goto_statement "goto LAB_0001fd9c;" (goto "goto") (statement_identifier "LAB_0001fd9c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" (else "else") (compound_statement "{\n              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n              iVar12 = *piVar22;\n              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);\n              if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }\n            }" ({ "{") (expression_statement "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);" (assignment_expression "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7)" (identifier "piVar22") (= "=") (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" (( "(") (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" (* "*") (cast_expression "(int *)(iVar5 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 100)" (( "(") (binary_expression "iVar5 + 100" (identifier "iVar5") (+ "+") (number_literal "100")) () ")")))) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "iVar12 = *piVar22;" (assignment_expression "iVar12 = *piVar22" (identifier "iVar12") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);" (assignment_expression "piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4)" (identifier "piVar17") (= "=") (pointer_expression "*(int **)(piVar23[3] + (int)piVar21 * 4)" (* "*") (cast_expression "(int **)(piVar23[3] + (int)piVar21 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar23[3] + (int)piVar21 * 4)" (( "(") (binary_expression "piVar23[3] + (int)piVar21 * 4" (subscript_expression "piVar23[3]" (identifier "piVar23") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(int)piVar21 * 4" (cast_expression "(int)piVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar21")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar12 == 0) {\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }\n              else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                aiStack_94[1] = 1;\n                aiStack_94[2] = 1;\n                piVar21 = piVar22;\n                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);\n                if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }\n                *puStack_88 = piVar17;\n                aiStack_94[0] = 0;\nLAB_0001fd48:\n                piVar19 = aiStack_94 + 1;\n                piVar18 = piVar23;\n                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);\n                pcVar25 = *(code **)(puVar24 + 0x207dc);\n                *piVar22 = iVar12;\n                (*pcVar25)(puStack_88);\n                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;\n              }" ({ "{") (expression_statement "aiStack_94[1] = 1;" (assignment_expression "aiStack_94[1] = 1" (subscript_expression "aiStack_94[1]" (identifier "aiStack_94") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "aiStack_94[2] = 1;" (assignment_expression "aiStack_94[2] = 1" (subscript_expression "aiStack_94[2]" (identifier "aiStack_94") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" (identifier "piVar21") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);" (assignment_expression "puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" (identifier "puStack_88") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar24 + 0x20774))(4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar24 + 0x20774))(4)" (parenthesized_expression "(**(code **)(puVar24 + 0x20774))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x20774)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x20774)" (* "*") (cast_expression "(code **)(puVar24 + 0x20774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x20774)" (( "(") (binary_expression "puVar24 + 0x20774" (identifier "puVar24") (+ "+") (number_literal "0x20774")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (puStack_88 == (undefined4 *)0x0) {\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }" (if "if") (parenthesized_expression "(puStack_88 == (undefined4 *)0x0)" (( "(") (binary_expression "puStack_88 == (undefined4 *)0x0" (identifier "puStack_88") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0001ff68:\n                  iVar7 = 0xc;\n                  break;\n                }" ({ "{") (labeled_statement "LAB_0001ff68:\n                  iVar7 = 0xc;" (statement_identifier "LAB_0001ff68") (: ":") (expression_statement "iVar7 = 0xc;" (assignment_expression "iVar7 = 0xc" (identifier "iVar7") (= "=") (number_literal "0xc")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "*puStack_88 = piVar17;" (assignment_expression "*puStack_88 = piVar17" (pointer_expression "*puStack_88" (* "*") (identifier "puStack_88")) (= "=") (identifier "piVar17")) (; ";")) (expression_statement "aiStack_94[0] = 0;" (assignment_expression "aiStack_94[0] = 0" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001fd48:\n                piVar19 = aiStack_94 + 1;" (statement_identifier "LAB_0001fd48") (: ":") (expression_statement "piVar19 = aiStack_94 + 1;" (assignment_expression "piVar19 = aiStack_94 + 1" (identifier "piVar19") (= "=") (binary_expression "aiStack_94 + 1" (identifier "aiStack_94") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar18 = piVar23;" (assignment_expression "piVar18 = piVar23" (identifier "piVar18") (= "=") (identifier "piVar23")) (; ";")) (expression_statement "iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);" (assignment_expression "iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94)" (identifier "iVar12") (= "=") (call_expression "(*(code *)(iVar9 + -0x8c4))(aiStack_94)" (parenthesized_expression "(*(code *)(iVar9 + -0x8c4))" (( "(") (pointer_expression "*(code *)(iVar9 + -0x8c4)" (* "*") (cast_expression "(code *)(iVar9 + -0x8c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x8c4)" (( "(") (binary_expression "iVar9 + -0x8c4" (identifier "iVar9") (+ "+") (number_literal "-0x8c4")) () ")")))) () ")")) (argument_list "(aiStack_94)" (( "(") (identifier "aiStack_94") () ")")))) (; ";")) (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar24 + 0x207dc)" (* "*") (cast_expression "(code **)(puVar24 + 0x207dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x207dc)" (( "(") (binary_expression "puVar24 + 0x207dc" (identifier "puVar24") (+ "+") (number_literal "0x207dc")) () ")"))))) (; ";")) (expression_statement "*piVar22 = iVar12;" (assignment_expression "*piVar22 = iVar12" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "(*pcVar25)(puStack_88);" (call_expression "(*pcVar25)(puStack_88)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(puStack_88)" (( "(") (identifier "puStack_88") () ")"))) (; ";")) (if_statement "if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;" (if "if") (parenthesized_expression "((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&\n                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0" (pointer_expression "*(int *)(*(int *)(iVar5 + 100) + iVar7)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" (( "(") (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" (* "*") (cast_expression "(int *)(iVar5 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 100)" (( "(") (binary_expression "iVar5 + 100" (identifier "iVar5") (+ "+") (number_literal "100")) () ")")))) (+ "+") (identifier "iVar7")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)" (( "(") (comma_expression "iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0" (assignment_expression "iVar7 = aiStack_94[0]" (identifier "iVar7") (= "=") (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]"))) (, ",") (comma_expression "piVar21 = piVar22, aiStack_94[0] != 0" (assignment_expression "piVar21 = piVar22" (identifier "piVar21") (= "=") (identifier "piVar22")) (, ",") (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" (else "else") (compound_statement "{\n                piVar18 = (int *)(iVar12 + 0xc);\n                piVar19 = piVar17;\n                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));\n                if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }\n              }" ({ "{") (expression_statement "piVar18 = (int *)(iVar12 + 0xc);" (assignment_expression "piVar18 = (int *)(iVar12 + 0xc)" (identifier "piVar18") (= "=") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "piVar19 = piVar17;" (assignment_expression "piVar19 = piVar17" (identifier "piVar19") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));" (assignment_expression "iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8))" (identifier "iVar13") (= "=") (call_expression "FUN_0001d8b0(*(undefined4 *)(iVar12 + 8))" (identifier "FUN_0001d8b0") (argument_list "(*(undefined4 *)(iVar12 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar13 == 0) {\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);\n                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);\n                  if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }\n                  (*pcVar25)(puStack_88);\n                  iVar7 = aiStack_94[0];\n                  piVar18 = piVar17;\n                  piVar21 = piVar22;\n                  if (aiStack_94[0] == 0) goto LAB_0001ff68;\n                  break;\n                }" ({ "{") (expression_statement "aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);" (assignment_expression "aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4)" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4)" (parenthesized_expression "(*(code *)(iVar10 + -4000))" (( "(") (pointer_expression "*(code *)(iVar10 + -4000)" (* "*") (cast_expression "(code *)(iVar10 + -4000)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + -4000)" (( "(") (binary_expression "iVar10 + -4000" (identifier "iVar10") (+ "+") (number_literal "-4000")) () ")")))) () ")")) (argument_list "(aiStack_94 + 1,iVar12 + 4)" (( "(") (binary_expression "aiStack_94 + 1" (identifier "aiStack_94") (+ "+") (number_literal "1")) (, ",") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);" (assignment_expression "iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1)" (identifier "iVar12") (= "=") (call_expression "(*(code *)(iVar11 + -0x4558))(aiStack_94 + 1)" (parenthesized_expression "(*(code *)(iVar11 + -0x4558))" (( "(") (pointer_expression "*(code *)(iVar11 + -0x4558)" (* "*") (cast_expression "(code *)(iVar11 + -0x4558)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0x4558)" (( "(") (binary_expression "iVar11 + -0x4558" (identifier "iVar11") (+ "+") (number_literal "-0x4558")) () ")")))) () ")")) (argument_list "(aiStack_94 + 1)" (( "(") (binary_expression "aiStack_94 + 1" (identifier "aiStack_94") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (aiStack_94[0] == 0) {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }\n                  else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" (if "if") (parenthesized_expression "(aiStack_94[0] == 0)" (( "(") (binary_expression "aiStack_94[0] == 0" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                    if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }\n                  }" ({ "{") (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar24 + 0x207dc)" (* "*") (cast_expression "(code **)(puVar24 + 0x207dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x207dc)" (( "(") (binary_expression "puVar24 + 0x207dc" (identifier "puVar24") (+ "+") (number_literal "0x207dc")) () ")"))))) (; ";")) (if_statement "if (iVar12 != 0) {\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);\n                      goto LAB_0001fd48;\n                    }" ({ "{") (expression_statement "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);" (assignment_expression "piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7)" (identifier "piVar22") (= "=") (cast_expression "(int *)(*(int *)(iVar5 + 100) + iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 100) + iVar7)" (( "(") (binary_expression "*(int *)(iVar5 + 100) + iVar7" (pointer_expression "*(int *)(iVar5 + 100)" (* "*") (cast_expression "(int *)(iVar5 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 100)" (( "(") (binary_expression "iVar5 + 100" (identifier "iVar5") (+ "+") (number_literal "100")) () ")")))) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (goto_statement "goto LAB_0001fd48;" (goto "goto") (statement_identifier "LAB_0001fd48") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" (else "else") (compound_statement "{\n                    pcVar25 = *(code **)(puVar24 + 0x207dc);\n                  }" ({ "{") (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207dc);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207dc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar24 + 0x207dc)" (* "*") (cast_expression "(code **)(puVar24 + 0x207dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x207dc)" (( "(") (binary_expression "puVar24 + 0x207dc" (identifier "puVar24") (+ "+") (number_literal "0x207dc")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(*pcVar25)(puStack_88);" (call_expression "(*pcVar25)(puStack_88)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(puStack_88)" (( "(") (identifier "puStack_88") () ")"))) (; ";")) (expression_statement "iVar7 = aiStack_94[0];" (assignment_expression "iVar7 = aiStack_94[0]" (identifier "iVar7") (= "=") (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" (identifier "piVar18") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" (identifier "piVar21") (= "=") (identifier "piVar22")) (; ";")) (if_statement "if (aiStack_94[0] == 0) goto LAB_0001ff68;" (if "if") (parenthesized_expression "(aiStack_94[0] == 0)" (( "(") (binary_expression "aiStack_94[0] == 0" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ff68;" (goto "goto") (statement_identifier "LAB_0001ff68") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}"))) (expression_statement "pcVar1 = (char *)(puVar15 + 4);" (assignment_expression "pcVar1 = (char *)(puVar15 + 4)" (identifier "pcVar1") (= "=") (cast_expression "(char *)(puVar15 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar21 = piVar22;" (assignment_expression "piVar21 = piVar22" (identifier "piVar21") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "puVar15 = puVar15 + 5;" (assignment_expression "puVar15 = puVar15 + 5" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 5" (identifier "puVar15") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar1 != '\0')" (( "(") (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";"))) (} "}")))) (} "}"))) (} "}"))) (if_statement "if (iStack_84 == *piVar6) {\n    return iVar7;\n  }" (if "if") (parenthesized_expression "(iStack_84 == *piVar6)" (( "(") (binary_expression "iStack_84 == *piVar6" (identifier "iStack_84") (== "==") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (compound_statement "{\n    return iVar7;\n  }" ({ "{") (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(puVar24 + 0x207b0);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x207b0)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar24 + 0x207b0)" (* "*") (cast_expression "(code **)(puVar24 + 0x207b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x207b0)" (( "(") (binary_expression "puVar24 + 0x207b0" (identifier "puVar24") (+ "+") (number_literal "0x207b0")) () ")"))))) (; ";")) (expression_statement "iVar5 = iStack_84;" (assignment_expression "iVar5 = iStack_84" (identifier "iVar5") (= "=") (identifier "iStack_84")) (; ";")) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = *piVar18;" (assignment_expression "iVar7 = *piVar18" (identifier "iVar7") (= "=") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (; ";")) (expression_statement "piVar22 = *(int **)(iVar5 + 0x54);" (assignment_expression "piVar22 = *(int **)(iVar5 + 0x54)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(iVar5 + 0x54)" (* "*") (cast_expression "(int **)(iVar5 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x54)" (( "(") (binary_expression "iVar5 + 0x54" (identifier "iVar5") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (0 < iVar7) {\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }" (if "if") (parenthesized_expression "(0 < iVar7)" (( "(") (binary_expression "0 < iVar7" (number_literal "0") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n    iVar8 = 0;\n    do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);\n  }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    } while (iVar8 < iVar7);" (do "do") (compound_statement "{\n      while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }\n      iVar10 = *(int *)(iVar5 + 0x7c);\n      iVar7 = *(int *)(iVar5 + 0x84);\n      if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }\n      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);\n      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;\n      if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }\n      *(int *)(iVar5 + 0x7c) = iVar10 + 1;\n      puVar15[1] = iVar9;\n      *puVar15 = piVar21;\n      iVar7 = *piVar18;\n    }" ({ "{") (while_statement "while( true ) {\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar9 = *(int *)(*piVar19 + iVar8 * 4);\n        puVar14 = (uint *)(*piVar22 + iVar9 * 8);\n        iVar8 = iVar8 + 1;\n        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;\n        if (iVar7 <= iVar8) {\n          return 0;\n        }\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(*piVar19 + iVar8 * 4);" (assignment_expression "iVar9 = *(int *)(*piVar19 + iVar8 * 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*piVar19 + iVar8 * 4)" (* "*") (cast_expression "(int *)(*piVar19 + iVar8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar19 + iVar8 * 4)" (( "(") (binary_expression "*piVar19 + iVar8 * 4" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "puVar14 = (uint *)(*piVar22 + iVar9 * 8);" (assignment_expression "puVar14 = (uint *)(*piVar22 + iVar9 * 8)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(*piVar22 + iVar9 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar9 * 8)" (( "(") (binary_expression "*piVar22 + iVar9 * 8" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;" (if "if") (parenthesized_expression "(((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0))" (( "(") (binary_expression "((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&\n           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)" (parenthesized_expression "((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20))" (( "(") (binary_expression "(*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)" (parenthesized_expression "(*(char *)(puVar14 + 1) == '\b')" (( "(") (binary_expression "*(char *)(puVar14 + 1) == '\b'" (pointer_expression "*(char *)(puVar14 + 1)" (* "*") (cast_expression "(char *)(puVar14 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar16 = *puVar14, (int)uVar16 < 0x20)" (( "(") (comma_expression "uVar16 = *puVar14, (int)uVar16 < 0x20" (assignment_expression "uVar16 = *puVar14" (identifier "uVar16") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (, ",") (binary_expression "(int)uVar16 < 0x20" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "0x20"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)" (( "(") (binary_expression "((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1)" (( "(") (binary_expression "(uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1" (binary_expression "(uint)piVar22[0x14] >> (uVar16 & 0x1f)" (cast_expression "(uint)piVar22[0x14]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar22[0x14]" (identifier "piVar22") ([ "[") (number_literal "0x14") (] "]"))) (>> ">>") (parenthesized_expression "(uVar16 & 0x1f)" (( "(") (binary_expression "uVar16 & 0x1f" (identifier "uVar16") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (iVar7 <= iVar8) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar7 <= iVar8)" (( "(") (binary_expression "iVar7 <= iVar8" (identifier "iVar7") (<= "<=") (identifier "iVar8")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar10 = *(int *)(iVar5 + 0x7c);" (assignment_expression "iVar10 = *(int *)(iVar5 + 0x7c)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar5 + 0x7c)" (* "*") (cast_expression "(int *)(iVar5 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7c)" (( "(") (binary_expression "iVar5 + 0x7c" (identifier "iVar5") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar5 + 0x84);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x84)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar5 + 0x84)" (* "*") (cast_expression "(int *)(iVar5 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x84)" (( "(") (binary_expression "iVar5 + 0x84" (identifier "iVar5") (+ "+") (number_literal "0x84")) () ")"))))) (; ";")) (if_statement "if (iVar10 == *(int *)(iVar5 + 0x80)) {\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }" (if "if") (parenthesized_expression "(iVar10 == *(int *)(iVar5 + 0x80))" (( "(") (binary_expression "iVar10 == *(int *)(iVar5 + 0x80)" (identifier "iVar10") (== "==") (pointer_expression "*(int *)(iVar5 + 0x80)" (* "*") (cast_expression "(int *)(iVar5 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x80)" (( "(") (binary_expression "iVar5 + 0x80" (identifier "iVar5") (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (compound_statement "{\n        iVar11 = iVar10 << 1;\n        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);\n        if (iVar7 == 0) {\n          return 0xc;\n        }\n        iVar10 = *(int *)(iVar5 + 0x7c);\n        *(int *)(iVar5 + 0x84) = iVar7;\n        *(int *)(iVar5 + 0x80) = iVar11;\n      }" ({ "{") (expression_statement "iVar11 = iVar10 << 1;" (assignment_expression "iVar11 = iVar10 << 1" (identifier "iVar11") (= "=") (binary_expression "iVar10 << 1" (identifier "iVar10") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);" (assignment_expression "iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3)" (parenthesized_expression "(**(code **)(pcVar25 + 0x20334))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x20334)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x20334)" (* "*") (cast_expression "(code **)(pcVar25 + 0x20334)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x20334)" (( "(") (binary_expression "pcVar25 + 0x20334" (identifier "pcVar25") (+ "+") (number_literal "0x20334")) () ")"))))) () ")")) (argument_list "(iVar7,iVar10 << 3)" (( "(") (identifier "iVar7") (, ",") (binary_expression "iVar10 << 3" (identifier "iVar10") (<< "<<") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          return 0xc;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0xc;\n        }" ({ "{") (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iVar5 + 0x7c);" (assignment_expression "iVar10 = *(int *)(iVar5 + 0x7c)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar5 + 0x7c)" (* "*") (cast_expression "(int *)(iVar5 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7c)" (( "(") (binary_expression "iVar5 + 0x7c" (identifier "iVar5") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar5 + 0x84) = iVar7;" (assignment_expression "*(int *)(iVar5 + 0x84) = iVar7" (pointer_expression "*(int *)(iVar5 + 0x84)" (* "*") (cast_expression "(int *)(iVar5 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x84)" (( "(") (binary_expression "iVar5 + 0x84" (identifier "iVar5") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int *)(iVar5 + 0x80) = iVar11;" (assignment_expression "*(int *)(iVar5 + 0x80) = iVar11" (pointer_expression "*(int *)(iVar5 + 0x80)" (* "*") (cast_expression "(int *)(iVar5 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x80)" (( "(") (binary_expression "iVar5 + 0x80" (identifier "iVar5") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (expression_statement "puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);" (assignment_expression "puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar25 + 0x20288))(1,0x18)" (parenthesized_expression "(**(code **)(pcVar25 + 0x20288))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x20288)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x20288)" (* "*") (cast_expression "(code **)(pcVar25 + 0x20288)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x20288)" (( "(") (binary_expression "pcVar25 + 0x20288" (identifier "pcVar25") (+ "+") (number_literal "0x20288")) () ")"))))) () ")")) (argument_list "(1,0x18)" (( "(") (number_literal "1") (, ",") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;" (assignment_expression "*(undefined4 **)(iVar7 + iVar10 * 4) = puVar15" (pointer_expression "*(undefined4 **)(iVar7 + iVar10 * 4)" (* "*") (cast_expression "(undefined4 **)(iVar7 + iVar10 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + iVar10 * 4)" (( "(") (binary_expression "iVar7 + iVar10 * 4" (identifier "iVar7") (+ "+") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (puVar15 == (undefined4 *)0x0) {\n        return 0xc;\n      }" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0xc;\n      }" ({ "{") (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "*(int *)(iVar5 + 0x7c) = iVar10 + 1;" (assignment_expression "*(int *)(iVar5 + 0x7c) = iVar10 + 1" (pointer_expression "*(int *)(iVar5 + 0x7c)" (* "*") (cast_expression "(int *)(iVar5 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7c)" (( "(") (binary_expression "iVar5 + 0x7c" (identifier "iVar5") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15[1] = iVar9;" (assignment_expression "puVar15[1] = iVar9" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*puVar15 = piVar21;" (assignment_expression "*puVar15 = piVar21" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (identifier "piVar21")) (; ";")) (expression_statement "iVar7 = *piVar18;" (assignment_expression "iVar7 = *piVar18" (identifier "iVar7") (= "=") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 < iVar7)" (( "(") (binary_expression "iVar8 < iVar7" (identifier "iVar8") (< "<") (identifier "iVar7")) () ")")) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

type_1 function_1(type_2 *dfa,type_3 **dst,type_3 **src,type_4 var_1)

{
  char *pcVar1;
  bool bVar2;
  type_2 *prVar3;
  type_5 *puVar4;
  int var_9;
  type_3 *prVar6;
  int *piVar7;
  type_6 bVar8;
  int var_11;
  int var_24;
  int var_25;
  int var_26;
  int var_27;
  type_4 var_14;
  type_1 var_20;
  type_1 var_21;
  type_1 rVar17;
  type_7 *var_30;
  type_8 *var_28;
  type_7 var_31;
  type_2 *var_15;
  type_4 *pIVar22;
  type_2 *var_12;
  type_9 *var_23;
  type_2 *prVar24;
  type_10 *set;
  type_3 **var_3;
  int var_22;
  type_2 *prVar26;
  type_10 *unaff_s1;
  type_10 *var_4;
  type_10 *unaff_s3;
  type_11 *unaff_s4;
  type_2 *unaff_s5;
  size_t *elem;
  type_3 *unaff_s7;
  type_2 *prVar27;
  type_5 *var_10;
  type_2 *unaff_s8;
  type_12 *var_32;
  type_2 *prStack_b8;
  type_1 var_19;
  type_9 *prStack_90;
  size_t sStack_8c;
  type_8 *var_16;
  type_4 *var_29;
  type_3 **pprStack_80;
  type_10 *prStack_7c;
  type_10 *prStack_78;
  type_10 *prStack_74;
  type_11 *prStack_70;
  type_2 *prStack_6c;
  type_3 *prStack_68;
  type_3 *prStack_64;
  type_2 *prStack_60;
  type_13 *pbStack_5c;
  type_2 *prStack_4c;
  type_1 var_6;
  type_10 merged_set;
  
  puVar4 = PTR___stack_chk_guard_00040330;
  var_9 = *(int *)PTR___stack_chk_guard_00040330;
  prVar24 = (type_2 *)var_1;
  if (0 < var_1) {
    var_4 = (type_10 *)0x0;
    unaff_s8 = (type_2 *)&merged_set;
    unaff_s4 = (type_11 *)(var_2 + -0xed0);
    unaff_s7 = (type_3 *)(var_2 + -0x8c4);
    var_3 = dst;
    unaff_s1 = (type_10 *)src;
    do {
      while( true ) {
        dst = (type_3 **)*var_3;
        src = (type_3 **)unaff_s1->alloc;
        unaff_s3 = (type_10 *)var_1;
        unaff_s5 = dfa;
        if ((type_2 *)dst != (type_2 *)0x0) break;
        var_4 = (type_10 *)((int)&var_4->alloc + 1);
        *var_3 = (type_3 *)src;
        unaff_s1 = (type_10 *)&unaff_s1->nelem;
        var_3 = var_3 + 1;
        if ((type_10 *)var_1 == var_4) goto LAB_0001fb14;
      }
      bVar2 = (type_2 *)src != (type_2 *)0x0;
      src = (type_3 **)&((type_2 *)src)->nodes_alloc;
      if (bVar2) {
        dst = (type_3 **)&((type_2 *)dst)->nodes_alloc;
        var_6 = var_5((type_10 *)unaff_s8,(type_10 *)dst,(type_10 *)src);
        rVar17 = var_6;
        if (var_6 != var_7) goto LAB_0001fb18;
        dst = (type_3 **)dfa;
        src = (type_3 **)unaff_s8;
        prVar6 = var_8(&var_6,dfa,(type_10 *)unaff_s8);
        var_10 = PTR_free_0004033c;
        *var_3 = prVar6;
        (*(type_12 *)var_10)(merged_set.elems);
        rVar17 = var_6;
        if (var_6 != var_7) goto LAB_0001fb18;
      }
      var_4 = (type_10 *)((int)&var_4->alloc + 1);
      var_3 = var_3 + 1;
      unaff_s1 = (type_10 *)&unaff_s1->nelem;
    } while ((type_10 *)var_1 != var_4);
  }
LAB_0001fb14:
  rVar17 = var_7;
  var_1 = (type_4)unaff_s3;
  dfa = unaff_s5;
LAB_0001fb18:
  if (var_9 == *(int *)puVar4) {
    return rVar17;
  }
  var_32 = expand_bkref_cache;
  var_10 = PTR___stack_chk_fail_00040310;
  (*(type_12 *)PTR___stack_chk_fail_00040310)();
  piVar7 = *(int **)(var_10 + 0x207d0);
  prStack_68 = (type_3 *)puVar4;
  var_29 = (type_4 *)*piVar7;
  var_12 = (type_2 *)0x0;
  prVar27 = *(type_2 **)(var_9 + 0x6c);
  prStack_b8 = (type_2 *)src;
  prVar26 = prVar24;
  while ((int)var_12 < (int)prVar27) {
    prStack_b8 = *(type_2 **)(var_9 + 0x74);
    var_15 = (type_2 *)
              (((int)(((type_2 *)(((type_2 *)(prVar27->word_char + -0x18))->word_char + -0x18))
                      ->word_char + 0xffffffe8) +
               (int)((type_2 *)
                    (((type_2 *)(((type_2 *)(var_12->word_char + -0x18))->word_char + -0x18))
                     ->word_char + -0x18))->word_char + 0xffffffa0U) / 2);
    bVar8 = prStack_b8->word_char[(int)var_15 * 5 + -0x17];
    while (prVar3 = var_15, (int)src <= (int)bVar8) {
      if ((int)prVar3 <= (int)var_12) goto LAB_0001fc4c;
      prVar26 = (type_2 *)
                (((int)(((type_2 *)(((type_2 *)(prVar3->word_char + -0x18))->word_char + -0x18))
                        ->word_char + 0xffffffe8) +
                 (int)((type_2 *)
                      (((type_2 *)
                       (((type_2 *)(var_12->word_char + -0x18))->word_char + -0x18))->word_char
                      + -0x18))->word_char + 0xffffffa0U) / 2);
      var_15 = prVar26;
      prVar27 = prVar3;
      bVar8 = prStack_b8->word_char[(int)prVar26 * 5 + -0x17];
    }
    prVar26 = prVar3;
    var_12 = (type_2 *)((int)&prVar3->nodes + 1);
  }
LAB_0001fc4c:
  rVar17 = var_7;
  pprStack_80 = var_3;
  prStack_7c = unaff_s1;
  prStack_78 = var_4;
  prStack_74 = (type_10 *)var_1;
  prStack_70 = unaff_s4;
  prStack_6c = dfa;
  prStack_64 = unaff_s7;
  prStack_60 = unaff_s8;
  pbStack_5c = (type_13 *)var_32;
  prStack_4c = prVar24;
  if ((int)var_12 < (int)*(type_2 **)(var_9 + 0x6c)) {
    var_11 = (int)var_12 * 0x14;
    var_28 = (type_8 *)(*(int *)(var_9 + 0x74) + var_11);
    rVar17 = var_7;
    if ((type_2 *)src == (type_2 *)var_28[1]) {
      elem = &((type_2 *)dst)->nodes_len;
      if (var_12 == (type_2 *)0xffffffff) {
        rVar17 = var_7;
      }
      else {
        var_24 = *(int *)(var_10 + 0x20694);
        prVar27 = *(type_2 **)(var_9 + 0x54);
        var_25 = *(int *)(var_10 + 0x20694);
        var_26 = *(int *)(var_10 + 0x20694);
        prVar24 = prVar26;
LAB_0001fd9c:
        do {
          prStack_b8 = (type_2 *)*var_28;
          set = (type_10 *)((type_2 *)dst)->nodes_alloc;
          var_12 = (type_2 *)elem;
          prVar26 = prStack_b8;
          var_14 = var_13(set,(type_4)elem,(type_10 *)prStack_b8);
          if (var_14 != 0) {
            var_15 = (type_2 *)((int)src + (var_28[3] - var_28[2]));
            var_22 = (int)var_15 * 4;
            if ((type_2 *)src == var_15) {
              prVar26 = (type_2 *)*prVar27->edests[(int)prVar26].elems;
              var_12 = (type_2 *)elem;
              prStack_b8 = prVar26;
              var_14 = var_13(set,(type_4)elem,(type_10 *)prVar26);
              if (var_14 == 0) {
                prStack_90 = (type_9 *)0x1;
                sStack_8c = 1;
                var_16 = (type_8 *)(**(type_12 **)(var_10 + 0x20774))(4);
                if (var_16 == (type_8 *)0x0) {
                  sStack_8c = 0;
                  var_19 = _REG_ESPACE;
                  prStack_90 = (type_9 *)0x0;
                }
                else {
                  *var_16 = prVar26;
                  var_19 = var_7;
                }
                var_12 = (type_2 *)&prStack_90;
                prStack_b8 = prStack_4c;
                prVar24 = (type_2 *)&_gp;
                var_20 = var_17
                                   (prVar27,(type_10 *)var_12,(type_4)prStack_4c,0x480d0);
                var_21 = var_18((type_10 *)dst,(type_10 *)var_12);
                (**(type_12 **)(var_10 + 0x207dc))(var_16);
                rVar17 = var_19;
                prVar26 = prVar24;
                if (((var_19 != var_7) || (rVar17 = var_20, var_20 != var_7)) ||
                   (rVar17 = var_21, var_21 != var_7)) break;
                var_28 = (type_8 *)(*(int *)(var_9 + 0x74) + var_11);
                goto LAB_0001fd9c;
              }
            }
            else {
              prVar24 = (type_2 *)(*(int *)(var_9 + 100) + var_22);
              var_23 = prVar24->nodes;
              var_15 = (type_2 *)prVar27->nexts[(int)prVar26];
              if (var_23 == (type_9 *)0x0) {
                prStack_90 = (type_9 *)0x1;
                sStack_8c = 1;
                prVar26 = prVar24;
                var_16 = (type_8 *)(**(type_12 **)(var_10 + 0x20774))(4);
                if (var_16 == (type_8 *)0x0) {
LAB_0001ff68:
                  rVar17 = _REG_ESPACE;
                  break;
                }
                *var_16 = var_15;
                var_19 = var_7;
LAB_0001fd48:
                prStack_b8 = (type_2 *)&prStack_90;
                var_12 = prVar27;
                var_23 = (type_9 *)(*(type_12 *)(var_24 + -0x8c4))(&var_19);
                var_32 = *(type_12 **)(var_10 + 0x207dc);
                prVar24->nodes = var_23;
                (*var_32)(var_16);
                if ((*(int *)(*(int *)(var_9 + 100) + var_22) == 0) &&
                   (rVar17 = var_19, prVar26 = prVar24, var_19 != var_7)) break;
              }
              else {
                var_12 = (type_2 *)&var_23[1].field_0x4;
                prStack_b8 = var_15;
                var_14 = var_13
                                   ((type_10 *)var_23[1].opr.mbcset,(type_4)var_12,
                                    (type_10 *)var_15);
                if (var_14 == 0) {
                  var_19 = (*(type_12 *)(var_25 + -4000))(&prStack_90,&var_23->field_0x4);
                  var_27 = (*(type_12 *)(var_26 + -0x4558))(&prStack_90);
                  if (var_19 == var_7) {
                    var_32 = *(type_12 **)(var_10 + 0x207dc);
                    if (var_27 != 0) {
                      prVar24 = (type_2 *)(*(int *)(var_9 + 100) + var_22);
                      goto LAB_0001fd48;
                    }
                  }
                  else {
                    var_32 = *(type_12 **)(var_10 + 0x207dc);
                  }
                  (*var_32)(var_16);
                  rVar17 = var_19;
                  var_12 = var_15;
                  prVar26 = prVar24;
                  if (var_19 == var_7) goto LAB_0001ff68;
                  break;
                }
              }
            }
          }
          pcVar1 = (char *)(var_28 + 4);
          rVar17 = var_7;
          prVar26 = prVar24;
          var_28 = var_28 + 5;
        } while (*pcVar1 != '\0');
      }
    }
  }
  if (var_29 == (type_4 *)*piVar7) {
    return rVar17;
  }
  var_32 = *(type_12 **)(var_10 + 0x207b0);
  pIVar22 = var_29;
  (*var_32)();
  var_23 = var_12->nodes;
  piVar7 = (int *)pIVar22[0x15];
  if (0 < (int)var_23) {
    var_9 = 0;
    do {
      while( true ) {
        var_11 = (&prStack_b8->nodes->opr)[var_9].idx;
        var_30 = (type_7 *)(*piVar7 + var_11 * 8);
        var_9 = var_9 + 1;
        if (((*(char *)(var_30 + 1) == '\b') && (var_31 = *var_30, (int)var_31 < 0x20)) &&
           (((type_7)piVar7[0x14] >> (var_31 & 0x1f) & 1) != 0)) break;
        if ((int)var_23 <= var_9) {
          return var_7;
        }
      }
      var_25 = pIVar22[0x1f];
      var_24 = pIVar22[0x21];
      if (var_25 == pIVar22[0x20]) {
        var_26 = var_25 << 1;
        var_24 = (**(type_12 **)(var_32 + 0x20334))(var_24,var_25 << 3);
        if (var_24 == 0) {
          return _REG_ESPACE;
        }
        var_25 = pIVar22[0x1f];
        pIVar22[0x21] = var_24;
        pIVar22[0x20] = var_26;
      }
      var_28 = (type_8 *)(**(type_12 **)(var_32 + 0x20288))(1,0x18);
      *(type_8 **)(var_24 + var_25 * 4) = var_28;
      if (var_28 == (type_8 *)0x0) {
        return _REG_ESPACE;
      }
      pIVar22[0x1f] = var_25 + 1;
      var_28[1] = var_11;
      *var_28 = prVar26;
      var_23 = var_12->nodes;
    } while (var_9 < (int)var_23);
  }
  return var_7;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) 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: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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: (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: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (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)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (identifier) right: (identifier)))))) (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))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))))) (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))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) body: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (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))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) 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)) 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: (identifier)))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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)))) (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: (primitive_type) 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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) 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)) 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: (identifier)))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (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)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (break_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) consequence: (break_statement))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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 (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (break_statement))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (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) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (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)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (return_statement (number_literal)))))

/* WARNING: Type propagation algorithm not settling */

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

{
  char *pcVar1;
  bool bVar2;
  int *piVar3;
  undefined *puVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  uint *puVar14;
  undefined4 *puVar15;
  uint uVar16;
  int *piVar17;
  int *piVar18;
  int *piVar19;
  undefined4 uVar20;
  undefined4 *unaff_s0;
  int *piVar21;
  int *unaff_s1;
  int *unaff_s2;
  int *unaff_s3;
  int *piVar22;
  undefined *unaff_s4;
  undefined4 *unaff_s5;
  undefined *unaff_s7;
  int *piVar23;
  undefined *puVar24;
  int *unaff_s8;
  code *pcVar25;
  int aiStack_94 [3];
  undefined4 *puStack_88;
  int iStack_84;
  undefined4 *puStack_80;
  int *piStack_7c;
  int *piStack_78;
  int *piStack_74;
  undefined *puStack_70;
  undefined4 *puStack_6c;
  undefined *puStack_68;
  undefined *puStack_64;
  int *piStack_60;
  code *pcStack_5c;
  int *piStack_4c;
  int local_3c;
  int aiStack_38 [2];
  undefined4 local_30;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_00040330;
  local_2c = *(int *)PTR___stack_chk_guard_00040330;
  piVar22 = param_4;
  if (0 < (int)param_4) {
    unaff_s2 = (int *)0x0;
    unaff_s8 = aiStack_38;
    unaff_s4 = PTR_LAB_000401f4 + -0xed0;
    unaff_s7 = PTR_LAB_000401f4 + -0x8c4;
    unaff_s0 = param_2;
    unaff_s1 = param_3;
    do {
      while( true ) {
        param_2 = (undefined4 *)*unaff_s0;
        param_3 = (int *)*unaff_s1;
        unaff_s3 = param_4;
        unaff_s5 = param_1;
        if (param_2 != (undefined4 *)0x0) break;
        unaff_s2 = (int *)((int)unaff_s2 + 1);
        *unaff_s0 = param_3;
        unaff_s1 = unaff_s1 + 1;
        unaff_s0 = unaff_s0 + 1;
        if (param_4 == unaff_s2) goto LAB_0001fb14;
      }
      bVar2 = param_3 != (int *)0x0;
      param_3 = param_3 + 1;
      if (bVar2) {
        param_2 = param_2 + 1;
        local_3c = FUN_0001f130(unaff_s8);
        iVar5 = local_3c;
        if (local_3c != 0) goto LAB_0001fb18;
        param_2 = param_1;
        param_3 = unaff_s8;
        uVar20 = FUN_0001f73c(&local_3c);
        puVar24 = PTR_free_0004033c;
        *unaff_s0 = uVar20;
        (*(code *)puVar24)(local_30);
        iVar5 = local_3c;
        if (local_3c != 0) goto LAB_0001fb18;
      }
      unaff_s2 = (int *)((int)unaff_s2 + 1);
      unaff_s0 = unaff_s0 + 1;
      unaff_s1 = unaff_s1 + 1;
    } while (param_4 != unaff_s2);
  }
LAB_0001fb14:
  iVar5 = 0;
  param_4 = unaff_s3;
  param_1 = unaff_s5;
LAB_0001fb18:
  if (local_2c == *(int *)puVar4) {
    return iVar5;
  }
  pcVar25 = FUN_0001fb60;
  iVar5 = local_2c;
  puVar24 = PTR___stack_chk_fail_00040310;
  (*(code *)PTR___stack_chk_fail_00040310)();
  piVar6 = *(int **)(puVar24 + 0x207d0);
  puStack_68 = puVar4;
  iStack_84 = *piVar6;
  piVar18 = (int *)0x0;
  piVar23 = *(int **)(iVar5 + 0x6c);
  piVar19 = param_3;
  piVar21 = piVar22;
  while ((int)piVar18 < (int)piVar23) {
    piVar19 = *(int **)(iVar5 + 0x74);
    piVar17 = (int *)((int)((int)piVar18 + (int)piVar23) / 2);
    iVar7 = piVar19[(int)piVar17 * 5 + 1];
    while (piVar3 = piVar17, (int)param_3 <= iVar7) {
      if ((int)piVar3 <= (int)piVar18) goto LAB_0001fc4c;
      piVar21 = (int *)((int)((int)piVar18 + (int)piVar3) / 2);
      piVar17 = piVar21;
      piVar23 = piVar3;
      iVar7 = piVar19[(int)piVar21 * 5 + 1];
    }
    piVar21 = piVar3;
    piVar18 = (int *)((int)piVar3 + 1);
  }
LAB_0001fc4c:
  iVar7 = 0;
  puStack_80 = unaff_s0;
  piStack_7c = unaff_s1;
  piStack_78 = unaff_s2;
  piStack_74 = param_4;
  puStack_70 = unaff_s4;
  puStack_6c = param_1;
  puStack_64 = unaff_s7;
  piStack_60 = unaff_s8;
  pcStack_5c = pcVar25;
  piStack_4c = piVar22;
  if ((int)piVar18 < (int)*(int **)(iVar5 + 0x6c)) {
    iVar8 = (int)piVar18 * 0x14;
    puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);
    iVar7 = 0;
    if (param_3 == (int *)puVar15[1]) {
      if (piVar18 == (int *)0xffffffff) {
        iVar7 = 0;
      }
      else {
        iVar9 = *(int *)(puVar24 + 0x20694);
        piVar23 = *(int **)(iVar5 + 0x54);
        iVar10 = *(int *)(puVar24 + 0x20694);
        iVar11 = *(int *)(puVar24 + 0x20694);
        piVar22 = piVar21;
LAB_0001fd9c:
        do {
          piVar19 = (int *)*puVar15;
          uVar20 = param_2[1];
          piVar18 = param_2 + 2;
          piVar21 = piVar19;
          iVar7 = FUN_0001d8b0(uVar20);
          if (iVar7 != 0) {
            piVar17 = (int *)((int)param_3 + (puVar15[3] - puVar15[2]));
            iVar7 = (int)piVar17 * 4;
            if (param_3 == piVar17) {
              piVar21 = (int *)**(undefined4 **)(piVar23[5] + (int)piVar21 * 0xc + 8);
              piVar18 = param_2 + 2;
              piVar19 = piVar21;
              iVar7 = FUN_0001d8b0(uVar20);
              if (iVar7 == 0) {
                aiStack_94[1] = 1;
                aiStack_94[2] = 1;
                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);
                if (puStack_88 == (undefined4 *)0x0) {
                  aiStack_94[2] = 0;
                  aiStack_94[0] = 0xc;
                  aiStack_94[1] = 0;
                }
                else {
                  *puStack_88 = piVar21;
                  aiStack_94[0] = 0;
                }
                piVar18 = aiStack_94 + 1;
                piVar19 = piStack_4c;
                piVar22 = (int *)&_gp_1;
                iVar12 = FUN_0001e5c8(piVar23,piVar18);
                iVar13 = FUN_0001e02c(param_2);
                (**(code **)(puVar24 + 0x207dc))(puStack_88);
                iVar7 = aiStack_94[0];
                piVar21 = piVar22;
                if (((aiStack_94[0] != 0) || (iVar7 = iVar12, iVar12 != 0)) ||
                   (iVar7 = iVar13, iVar13 != 0)) break;
                puVar15 = (undefined4 *)(*(int *)(iVar5 + 0x74) + iVar8);
                goto LAB_0001fd9c;
              }
            }
            else {
              piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);
              iVar12 = *piVar22;
              piVar17 = *(int **)(piVar23[3] + (int)piVar21 * 4);
              if (iVar12 == 0) {
                aiStack_94[1] = 1;
                aiStack_94[2] = 1;
                piVar21 = piVar22;
                puStack_88 = (undefined4 *)(**(code **)(puVar24 + 0x20774))(4);
                if (puStack_88 == (undefined4 *)0x0) {
LAB_0001ff68:
                  iVar7 = 0xc;
                  break;
                }
                *puStack_88 = piVar17;
                aiStack_94[0] = 0;
LAB_0001fd48:
                piVar19 = aiStack_94 + 1;
                piVar18 = piVar23;
                iVar12 = (*(code *)(iVar9 + -0x8c4))(aiStack_94);
                pcVar25 = *(code **)(puVar24 + 0x207dc);
                *piVar22 = iVar12;
                (*pcVar25)(puStack_88);
                if ((*(int *)(*(int *)(iVar5 + 100) + iVar7) == 0) &&
                   (iVar7 = aiStack_94[0], piVar21 = piVar22, aiStack_94[0] != 0)) break;
              }
              else {
                piVar18 = (int *)(iVar12 + 0xc);
                piVar19 = piVar17;
                iVar13 = FUN_0001d8b0(*(undefined4 *)(iVar12 + 8));
                if (iVar13 == 0) {
                  aiStack_94[0] = (*(code *)(iVar10 + -4000))(aiStack_94 + 1,iVar12 + 4);
                  iVar12 = (*(code *)(iVar11 + -0x4558))(aiStack_94 + 1);
                  if (aiStack_94[0] == 0) {
                    pcVar25 = *(code **)(puVar24 + 0x207dc);
                    if (iVar12 != 0) {
                      piVar22 = (int *)(*(int *)(iVar5 + 100) + iVar7);
                      goto LAB_0001fd48;
                    }
                  }
                  else {
                    pcVar25 = *(code **)(puVar24 + 0x207dc);
                  }
                  (*pcVar25)(puStack_88);
                  iVar7 = aiStack_94[0];
                  piVar18 = piVar17;
                  piVar21 = piVar22;
                  if (aiStack_94[0] == 0) goto LAB_0001ff68;
                  break;
                }
              }
            }
          }
          pcVar1 = (char *)(puVar15 + 4);
          iVar7 = 0;
          piVar21 = piVar22;
          puVar15 = puVar15 + 5;
        } while (*pcVar1 != '\0');
      }
    }
  }
  if (iStack_84 == *piVar6) {
    return iVar7;
  }
  pcVar25 = *(code **)(puVar24 + 0x207b0);
  iVar5 = iStack_84;
  (*pcVar25)();
  iVar7 = *piVar18;
  piVar22 = *(int **)(iVar5 + 0x54);
  if (0 < iVar7) {
    iVar8 = 0;
    do {
      while( true ) {
        iVar9 = *(int *)(*piVar19 + iVar8 * 4);
        puVar14 = (uint *)(*piVar22 + iVar9 * 8);
        iVar8 = iVar8 + 1;
        if (((*(char *)(puVar14 + 1) == '\b') && (uVar16 = *puVar14, (int)uVar16 < 0x20)) &&
           (((uint)piVar22[0x14] >> (uVar16 & 0x1f) & 1) != 0)) break;
        if (iVar7 <= iVar8) {
          return 0;
        }
      }
      iVar10 = *(int *)(iVar5 + 0x7c);
      iVar7 = *(int *)(iVar5 + 0x84);
      if (iVar10 == *(int *)(iVar5 + 0x80)) {
        iVar11 = iVar10 << 1;
        iVar7 = (**(code **)(pcVar25 + 0x20334))(iVar7,iVar10 << 3);
        if (iVar7 == 0) {
          return 0xc;
        }
        iVar10 = *(int *)(iVar5 + 0x7c);
        *(int *)(iVar5 + 0x84) = iVar7;
        *(int *)(iVar5 + 0x80) = iVar11;
      }
      puVar15 = (undefined4 *)(**(code **)(pcVar25 + 0x20288))(1,0x18);
      *(undefined4 **)(iVar7 + iVar10 * 4) = puVar15;
      if (puVar15 == (undefined4 *)0x0) {
        return 0xc;
      }
      *(int *)(iVar5 + 0x7c) = iVar10 + 1;
      puVar15[1] = iVar9;
      *puVar15 = piVar21;
      iVar7 = *piVar18;
    } while (iVar8 < iVar7);
  }
  return 0;
}

