
reg_errcode_t
sub_epsilon_src_nodes(re_dfa_t *dfa,Idx node,re_node_set *dest_nodes,re_node_set *candidates)

{
  byte bVar1;
  re_token_t token;
  bool bVar2;
  re_node_set *prVar3;
  int iVar4;
  Idx IVar5;
  reg_errcode_t rVar6;
  int *piVar7;
  uint *puVar8;
  int iVar9;
  undefined1 *puVar10;
  int iVar11;
  re_dfa_t **pprVar12;
  re_dfa_t **pprVar13;
  Idx *pIVar14;
  Idx **ppIVar15;
  uint uVar16;
  Idx *pIVar17;
  undefined4 *puVar18;
  int iVar19;
  re_dfa_t *prVar20;
  re_node_set *prVar21;
  Idx *pIVar22;
  re_node_set *elem;
  int iVar23;
  uint uVar24;
  Idx *pIVar25;
  Idx *pIVar26;
  re_node_set *prVar27;
  uint uVar28;
  uint *puVar29;
  re_node_set *prVar30;
  Idx *pIVar31;
  int iVar32;
  re_node_set *set;
  re_dfa_t **pprVar33;
  re_node_set *prVar34;
  uint *puVar35;
  Idx *pIVar36;
  re_node_set *set_00;
  int unaff_s0;
  int *piVar37;
  Idx unaff_s2;
  re_node_set *prVar38;
  re_node_set *unaff_s3;
  undefined *puVar39;
  Idx **unaff_s5;
  undefined4 *puVar40;
  undefined *unaff_s6;
  re_node_set *unaff_s7;
  byte *pbVar41;
  int iVar42;
  re_node_set *prVar43;
  undefined *puVar44;
  code *pcVar45;
  re_dfa_t *unaff_s8;
  code *pcVar46;
  undefined4 in_stack_fffffeac;
  int iStack_124;
  int iStack_118;
  int iStack_f4;
  undefined1 *puStack_f0;
  undefined4 uStack_ec;
  int iStack_e8;
  re_node_set rStack_e4;
  uint uStack_d8;
  uint uStack_d4;
  uint uStack_d0;
  uint uStack_cc;
  uint uStack_c8;
  re_node_set rStack_c4;
  uint uStack_b8;
  uint uStack_b4;
  uint uStack_b0;
  uint uStack_ac;
  uint uStack_a8;
  re_dfa_t *prStack_a4;
  uint uStack_a0;
  uint uStack_9c;
  uint uStack_98;
  uint uStack_94;
  uint uStack_90;
  uint uStack_8c;
  uint uStack_88;
  re_dfa_t *prStack_84;
  int iStack_80;
  re_node_set *prStack_7c;
  Idx IStack_78;
  re_node_set *prStack_74;
  undefined *puStack_70;
  Idx **ppIStack_6c;
  undefined *puStack_68;
  re_node_set *prStack_64;
  re_dfa_t *prStack_60;
  code *pcStack_5c;
  re_node_set except_nodes;
  
  puVar44 = PTR___stack_chk_guard_00075be8;
  except_nodes.alloc = 0;
  except_nodes.nelem = 0;
  except_nodes.elems = (Idx *)0x0;
  prVar38 = dfa->inveclosures + node;
  prVar3 = *(re_node_set **)PTR___stack_chk_guard_00075be8;
  prVar27 = (re_node_set *)prVar38->nelem;
  elem = (re_node_set *)node;
  puVar39 = PTR_LAB_00075920;
  if (0 < (int)prVar27) {
    unaff_s7 = &except_nodes;
    unaff_s0 = 0;
    unaff_s5 = &prVar38->elems;
    puVar39 = PTR_LAB_00075920 + 0x5230;
    unaff_s6 = PTR_LAB_00075920 + 0x6140;
    do {
      iVar4 = prVar38->elems[unaff_s0];
      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {
        iVar32 = iVar4 * 0xc;
        prVar21 = dfa->edests + iVar4;
        pIVar36 = prVar21->elems;
        prVar34 = (re_node_set *)*pIVar36;
        elem = (re_node_set *)unaff_s5;
        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);
        if (prVar21->nelem < 2) {
          if (IVar5 == 0) {
            elem = (re_node_set *)&dest_nodes->elems;
            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);
            if (IVar5 != 0) goto LAB_000488c0;
          }
        }
        else if ((IVar5 == 0) &&
                (IVar5 = re_node_set_contains
                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34
                                   ), IVar5 != 0)) {
LAB_000488c0:
          prVar27 = dfa->inveclosures;
LAB_000488c4:
          elem = candidates;
          rVar6 = re_node_set_add_intersect
                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));
          if (rVar6 != _REG_NOERROR) {
            (*(code *)PTR_free_00075bfc)(except_nodes.elems);
            goto LAB_00048a80;
          }
          prVar27 = (re_node_set *)prVar38->nelem;
        }
        else {
          prVar34 = (re_node_set *)pIVar36[1];
          elem = (re_node_set *)unaff_s5;
          if ((0 < (int)prVar34) &&
             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {
            elem = (re_node_set *)&dest_nodes->elems;
            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);
            if (IVar5 != 0) {
              prVar27 = dfa->inveclosures;
              goto LAB_000488c4;
            }
          }
        }
      }
      unaff_s0 = unaff_s0 + 1;
    } while (unaff_s0 < (int)prVar27);
    unaff_s2 = node;
    unaff_s3 = dest_nodes;
    unaff_s8 = dfa;
    if (0 < (int)prVar27) {
      iVar4 = 0;
      set_00 = (re_node_set *)&dest_nodes->nelem;
      prVar34 = (re_node_set *)&dest_nodes->elems;
      prVar21 = (re_node_set *)&except_nodes.elems;
      do {
        prVar30 = (re_node_set *)prVar38->elems[iVar4];
        prVar43 = prVar21;
        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);
        elem = prVar21;
        if (IVar5 == 0) {
          set = (re_node_set *)dest_nodes->nelem;
          prVar21 = prVar34;
          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);
          prVar30 = (re_node_set *)(IVar5 + -1);
          elem = prVar34;
          prVar34 = prVar21;
          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {
            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);
            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);
            prVar27 = (re_node_set *)prVar38->nelem;
            elem = prVar21;
          }
        }
        iVar4 = iVar4 + 1;
        prVar21 = prVar43;
      } while (iVar4 < (int)prVar27);
    }
  }
  (*(code *)PTR_free_00075bfc)(except_nodes.elems);
  rVar6 = _REG_NOERROR;
  node = unaff_s2;
  dest_nodes = unaff_s3;
  dfa = unaff_s8;
LAB_00048a80:
  if (prVar3 == *(re_node_set **)puVar44) {
    return rVar6;
  }
  pcVar46 = build_trtable;
  puVar44 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  piVar7 = *(int **)(puVar44 + 0x2d0f8);
  prStack_84 = (re_dfa_t *)*piVar7;
  prVar27 = elem;
  iStack_80 = unaff_s0;
  prStack_7c = prVar38;
  IStack_78 = node;
  prStack_74 = dest_nodes;
  puStack_70 = puVar39;
  ppIStack_6c = unaff_s5;
  puStack_68 = unaff_s6;
  prStack_64 = unaff_s7;
  prStack_60 = dfa;
  pcStack_5c = pcVar46;
  iVar4 = (**(code **)(puVar44 + 0x2d03c))(0x2c00);
  if (iVar4 == 0) goto LAB_00048f5c;
  pIVar36 = elem->elems;
  elem[3].elems = (Idx *)0x0;
  puVar8 = (uint *)(iVar4 + 0xc00);
  elem[4].alloc = 0;
  rStack_e4.alloc = 0;
  rStack_e4.nelem = 0;
  rStack_e4.elems = (Idx *)0x0;
  uStack_d8 = 0;
  uStack_d4 = 0;
  uStack_d0 = 0;
  uStack_cc = 0;
  uStack_c8 = 0;
  if (0 < (int)pIVar36) {
    iVar32 = *(int *)(puVar44 + 0x2ce30);
    iStack_124 = 0;
    iVar9 = *(int *)(puVar44 + 0x2ce30);
    prVar38 = (re_node_set *)0x0;
LAB_00048bd4:
    iVar19 = iStack_124 * 4;
    pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2);
    bVar1 = pbVar41[4];
    uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16;
    if (bVar1 == 1) {
      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));
      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));
      *ppIVar15 = (Idx *)prVar27;
LAB_00048fc0:
      IVar5 = rStack_e4.alloc;
      if (uVar28 == 0) goto LAB_000490bc;
      if ((uVar28 & 0x20) == 0) {
        if ((uVar28 & 0x80) != 0) goto LAB_00049388;
LAB_00048fdc:
        if ((uVar28 & 4) != 0) {
          if (bVar1 == 1) {
            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;
            pIVar17 = prVar3[7].elems;
          }
          else {
            pIVar17 = prVar3[7].elems;
          }
          if ((int)pIVar17 < 2) {
            prVar21 = prVar3 + 8;
            uVar24 = 0;
            prVar34 = &rStack_e4;
            do {
              pIVar14 = &prVar34->nelem;
              pIVar17 = &prVar21->alloc;
              prVar21 = (re_node_set *)&prVar21->nelem;
              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);
              prVar34->alloc = (Idx)prVar27;
              uVar24 = uVar24 | (uint)prVar27;
              prVar34 = (re_node_set *)pIVar14;
            } while (&rStack_c4 != (re_node_set *)pIVar14);
          }
          else {
            puVar35 = (uint *)prVar3[5].alloc;
            prVar21 = prVar3 + 8;
            uVar24 = 0;
            prVar34 = &rStack_e4;
            do {
              prVar27 = (re_node_set *)&prVar34->nelem;
              uVar16 = *puVar35;
              pIVar17 = &prVar21->alloc;
              puVar35 = puVar35 + 1;
              prVar21 = (re_node_set *)&prVar21->nelem;
              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);
              prVar34->alloc = (Idx)pIVar17;
              uVar24 = uVar24 | (uint)pIVar17;
              prVar34 = prVar27;
            } while (&rStack_c4 != prVar27);
          }
          if (uVar24 == 0) goto LAB_00048c28;
        }
        if ((uVar28 & 8) == 0) {
LAB_000490bc:
          prVar34 = (re_node_set *)0x0;
          if (0 < (int)prVar38) {
            prVar34 = (re_node_set *)0x0;
            puVar35 = puVar8;
            do {
              prVar27 = (re_node_set *)((int)prVar34 * 0x20);
              if ((bVar1 != 1) ||
                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)
                  != 0)) {
                uVar28 = 0;
                prVar27 = &rStack_e4;
                prVar21 = &rStack_c4;
                puVar29 = puVar35;
                do {
                  pIVar36 = &prVar27->nelem;
                  uVar24 = *puVar29;
                  puVar29 = puVar29 + 1;
                  uVar24 = (uint)prVar27->alloc & uVar24;
                  prVar21->alloc = uVar24;
                  uVar28 = uVar28 | uVar24;
                  prVar27 = (re_node_set *)pIVar36;
                  prVar21 = (re_node_set *)&prVar21->nelem;
                } while (&rStack_c4 != (re_node_set *)pIVar36);
                prVar27 = &rStack_e4;
                if (uVar28 != 0) {
                  uVar24 = 0;
                  uVar28 = 0;
                  puVar29 = puVar35;
                  pprVar33 = &prStack_a4;
                  do {
                    uVar16 = *puVar29;
                    puVar29 = puVar29 + 1;
                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);
                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);
                    *pprVar33 = prVar20;
                    prVar27->alloc = (Idx)pIVar36;
                    uVar28 = uVar28 | (uint)prVar20;
                    uVar24 = uVar24 | (uint)pIVar36;
                    prVar27 = (re_node_set *)&prVar27->nelem;
                    pprVar33 = pprVar33 + 1;
                  } while (puVar35 + 8 != puVar29);
                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);
                  if (uVar28 != 0) {
                    iStack_118 = (int)prVar38 * 2;
                    puVar29 = puVar8 + (int)prVar38 * 8;
                    *puVar29 = (uint)prStack_a4;
                    puVar29[1] = uStack_a0;
                    puVar29[2] = uStack_9c;
                    puVar29[3] = uStack_98;
                    puVar29[4] = uStack_94;
                    puVar29[5] = uStack_90;
                    puVar29[6] = uStack_8c;
                    puVar29[7] = uStack_88;
                    puVar35[1] = rStack_c4.nelem;
                    puVar35[2] = (uint)rStack_c4.elems;
                    *puVar35 = rStack_c4.alloc;
                    puVar35[3] = uStack_b8;
                    puVar35[4] = uStack_b4;
                    puVar35[5] = uStack_b0;
                    puVar35[6] = uStack_ac;
                    puVar35[7] = uStack_a8;
                    prVar27 = prVar21;
                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);
                    if (iVar23 != 0) goto LAB_000493b8;
                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);
                  }
                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);
                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);
                  if (iVar23 == 0) {
                    iStack_118 = (int)prVar38 << 1;
                    goto LAB_000493b8;
                  }
                  if (uVar24 == 0) break;
                }
              }
              puVar35 = puVar35 + 8;
              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);
            } while ((int)prVar34 < (int)prVar38);
          }
          iStack_118 = (int)prVar38 * 2;
          if (prVar38 == prVar34) {
            iVar23 = elem[1].alloc;
            pcVar46 = *(code **)(puVar44 + 0x2d03c);
            puVar35 = puVar8 + (int)prVar38 * 8;
            *puVar35 = rStack_e4.alloc;
            prVar27 = (re_node_set *)(iVar23 + iVar19);
            puVar35[1] = rStack_e4.nelem;
            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);
            puVar35[2] = (uint)rStack_e4.elems;
            puVar35[3] = uStack_d8;
            puVar35[4] = uStack_d4;
            puVar35[5] = uStack_d0;
            puVar35[6] = uStack_cc;
            puVar35[7] = uStack_c8;
            pIVar17 = (Idx *)prVar27->alloc;
            *puVar40 = 1;
            puVar40[1] = 1;
            puVar18 = (undefined4 *)(*pcVar46)(4);
            puVar40[2] = puVar18;
            if (puVar18 != (undefined4 *)0x0) {
              pIVar36 = elem->elems;
              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);
              *puVar18 = pIVar17;
              rStack_e4.alloc = 0;
              rStack_e4.nelem = 0;
              rStack_e4.elems = (Idx *)0x0;
              uStack_d8 = 0;
              uStack_d4 = 0;
              uStack_d0 = 0;
              uStack_cc = 0;
              uStack_c8 = 0;
              goto LAB_00048c28;
            }
            puVar40[1] = 0;
            *puVar40 = 0;
            if (prVar38 == (re_node_set *)0x0) {
              (**(code **)(puVar44 + 0x2d10c))(iVar4);
            }
            else {
LAB_000493b8:
              iVar32 = iVar4;
              do {
                iVar9 = iVar32 + 0xc;
                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));
                iVar32 = iVar9;
              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);
              (**(code **)(puVar44 + 0x2d10c))(iVar4);
            }
            goto LAB_00048f5c;
          }
          pIVar36 = elem->elems;
          goto LAB_00048c28;
        }
        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {
          prVar34 = prVar3 + 8;
          if ((int)prVar3[7].elems < 2) {
            prVar27 = (re_node_set *)0x0;
            prVar21 = &rStack_e4;
            do {
              pIVar14 = &prVar21->nelem;
              pIVar17 = &prVar34->alloc;
              prVar34 = (re_node_set *)&prVar34->nelem;
              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);
              prVar21->alloc = (Idx)pIVar17;
              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);
              prVar21 = (re_node_set *)pIVar14;
            } while ((re_node_set *)pIVar14 != &rStack_c4);
          }
          else {
            puVar35 = (uint *)prVar3[5].alloc;
            prVar27 = (re_node_set *)0x0;
            prVar21 = &rStack_e4;
            do {
              pIVar14 = &prVar21->nelem;
              uVar28 = *puVar35;
              pIVar17 = &prVar34->alloc;
              puVar35 = puVar35 + 1;
              prVar34 = (re_node_set *)&prVar34->nelem;
              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);
              prVar21->alloc = (Idx)pIVar17;
              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);
              prVar21 = (re_node_set *)pIVar14;
            } while (&rStack_c4 != (re_node_set *)pIVar14);
          }
          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;
          goto LAB_000490bc;
        }
        rStack_e4.alloc = 0;
      }
      else {
        rStack_e4.nelem = 0;
        rStack_e4.alloc = 0;
        rStack_e4.elems = (Idx *)0x0;
        uStack_d8 = 0;
        uStack_d4 = 0;
        uStack_d0 = 0;
        uStack_cc = 0;
        uStack_c8 = 0;
        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;
        rStack_e4.alloc = 0x400;
        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;
LAB_00049388:
        rStack_e4.alloc = 0;
      }
      rStack_e4.alloc = 0;
      rStack_e4.nelem = 0;
      rStack_e4.elems = (Idx *)0x0;
      uStack_d8 = 0;
      uStack_d4 = 0;
      uStack_d0 = 0;
      uStack_cc = 0;
      uStack_c8 = 0;
    }
    else {
      if (bVar1 == 3) {
        puVar35 = *(uint **)pbVar41;
        prVar34 = &rStack_e4;
        do {
          pIVar17 = &prVar34->nelem;
          uVar24 = *puVar35;
          puVar35 = puVar35 + 1;
          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);
          prVar34->alloc = (Idx)prVar27;
          prVar34 = (re_node_set *)pIVar17;
        } while (&rStack_c4 != (re_node_set *)pIVar17);
        goto LAB_00048fc0;
      }
      if (bVar1 == 5) {
        if ((int)prVar3[7].elems < 2) {
          rStack_e4.alloc = -1;
          rStack_e4.nelem = 0xffffffff;
          rStack_e4.elems = (Idx *)0xffffffff;
          uStack_d8 = 0xffffffff;
          uStack_d4 = 0xffffffff;
          uStack_d0 = 0xffffffff;
          uStack_cc = 0xffffffff;
          uStack_c8 = 0xffffffff;
        }
        else {
          puVar35 = (uint *)prVar3[5].alloc;
          prVar27 = &rStack_e4;
          do {
            pIVar17 = &prVar27->nelem;
            uVar24 = *puVar35;
            puVar35 = puVar35 + 1;
            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);
            prVar27 = (re_node_set *)pIVar17;
          } while (&rStack_c4 != (re_node_set *)pIVar17);
        }
        pIVar17 = prVar3[10].elems;
joined_r0x00049318:
        if (((uint)pIVar17 & 0x40) == 0) {
          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);
        }
        prVar27 = (re_node_set *)rStack_e4.alloc;
        if (((uint)pIVar17 & 0x80) != 0) {
          prVar27 = (re_node_set *)&SUB_fffffffe;
          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);
        }
        goto LAB_00048fc0;
      }
      prVar27 = (re_node_set *)0xffffffff;
      if (bVar1 == 7) {
        pIVar17 = prVar3[10].elems;
        rStack_e4.alloc = -1;
        rStack_e4.nelem = 0xffffffff;
        rStack_e4.elems = (Idx *)0xffffffff;
        uStack_d8 = 0xffffffff;
        goto joined_r0x00049318;
      }
    }
LAB_00048c28:
    iStack_124 = iStack_124 + 1;
    if ((int)pIVar36 <= iStack_124) goto code_r0x00048c3c;
    goto LAB_00048bd4;
  }
  (**(code **)(puVar44 + 0x2d10c))(iVar4);
LAB_00049784:
  prVar27 = (re_node_set *)0x100;
  pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);
  elem[3].elems = pIVar36;
  rVar6 = (reg_errcode_t)(pIVar36 != (Idx *)0x0);
LAB_00048f60:
  if (prStack_84 == (re_dfa_t *)*piVar7) {
    return rVar6;
  }
  pcVar46 = *(code **)(puVar44 + 0x2d0b8);
  prVar20 = prStack_84;
  (*pcVar46)();
  if (*(char *)&prVar27[2].alloc == '\x10') {
    IVar5 = *(Idx *)(prVar27->nelem + 0x1c);
    prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc);
    prVar27[2].nelem = IVar5;
    return _REG_NOERROR;
  }
  prVar27[1].alloc = (Idx)prVar27;
  token.opr.sbcset = (re_bitset_ptr_t)(pcVar46 + 0x33cb4);
  token._4_4_ = in_stack_fffffeac;
  IVar5 = re_dfa_add_node(prVar20,token);
  prVar27[2].nelem = IVar5;
  if (IVar5 == -1) {
    rVar6 = _REG_ESPACE;
  }
  else {
    if (*(char *)&prVar27[2].alloc == '\f') {
      *(uint *)&prVar20->nodes[IVar5].field_0x4 =
           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |
           ((uint)prVar27[1].elems & 0x3ff) << 0xe;
      return _REG_NOERROR;
    }
    rVar6 = _REG_NOERROR;
  }
  return rVar6;
code_r0x00048c3c:
  if (0 < (int)prVar38) {
    puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);
    uStack_ec = 0;
    puStack_f0 = puVar10;
    iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);
    iStack_e8 = iVar32;
    if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {
      iStack_118 = (int)prVar38 << 1;
    }
    else {
      iStack_118 = (int)prVar38 * 2;
      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);
      if (pIVar36 != (Idx *)0x0) {
        iVar32 = (int)puVar10 * 4 + -4;
        pprVar33 = &prStack_a4;
        iVar19 = 0;
        pIVar17 = pIVar36 + (int)&prVar38->alloc;
        prStack_a4 = (re_dfa_t *)0x0;
        piVar37 = (int *)(iVar4 + 4);
        uStack_a0 = 0;
        uStack_9c = 0;
        iVar9 = *(int *)(puVar44 + 0x2ce30);
        uStack_98 = 0;
        bVar2 = false;
        uStack_94 = 0;
        uStack_90 = 0;
        uStack_8c = 0;
        uStack_88 = 0;
        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);
        do {
          iVar23 = *piVar37;
          iVar42 = 0;
          uStack_ec = 0;
          if (0 < iVar23) {
            do {
              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);
              if (iVar11 != -1) {
                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);
                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);
                if (iStack_f4 != 0) goto LAB_000495c0;
                iVar23 = *piVar37;
              }
              iVar42 = iVar42 + 1;
            } while (iVar42 < iVar23);
          }
          prVar27 = prVar3;
          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);
          *(int *)((int)pIVar36 + iVar19) = iVar23;
          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))
          goto LAB_000495c4;
          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {
            *(int *)((int)pIVar17 + iVar19) = iVar23;
            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;
          }
          else {
            prVar27 = prVar3;
            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);
            *(int *)((int)pIVar17 + iVar19) = iVar23;
            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))
            goto LAB_000495c4;
            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {
              bVar2 = true;
            }
            prVar27 = prVar3;
            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);
            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;
            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;
          }
          iVar23 = iVar19 * 8 + iVar4;
          pprVar12 = pprVar33;
          do {
            pprVar13 = pprVar12 + 1;
            puVar35 = (uint *)(iVar23 + 0xc00);
            iVar23 = iVar23 + 4;
            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);
            pprVar12 = pprVar13;
          } while (&prStack_84 != pprVar13);
          iVar19 = iVar19 + 4;
          piVar37 = piVar37 + 3;
        } while (iVar32 != iVar19);
        if (bVar2) {
          prVar27 = (re_node_set *)0x200;
          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);
          elem[4].alloc = (Idx)pIVar14;
          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;
          iVar32 = iVar4;
          pIVar31 = pIVar14;
          do {
            prVar20 = *pprVar33;
            if (prVar20 != (re_dfa_t *)0x0) {
              prVar27 = (re_node_set *)0x1;
              pIVar26 = pIVar31;
              do {
                if (((uint)prVar20 & 1) != 0) {
                  iVar19 = 0;
                  pIVar22 = pIVar17;
                  pIVar25 = pIVar36;
                  iVar9 = iVar32;
                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {
                    do {
                      puVar35 = (uint *)(iVar9 + 0xc20);
                      iVar19 = iVar19 + 1;
                      iVar9 = iVar9 + 0x20;
                    } while (((uint)prVar27 & *puVar35) == 0);
                    pIVar22 = pIVar17 + iVar19;
                    pIVar25 = pIVar36 + iVar19;
                  }
                  *pIVar26 = *pIVar25;
                  pIVar26[0x100] = *pIVar22;
                }
                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);
                prVar27 = (re_node_set *)((int)prVar27 << 1);
                pIVar26 = pIVar26 + 1;
              } while (prVar20 != (re_dfa_t *)0x0);
            }
            pIVar31 = pIVar31 + 0x20;
            pprVar33 = pprVar33 + 1;
            iVar32 = iVar32 + 4;
          } while (pIVar14 + 0x100 != pIVar31);
        }
        else {
          prVar27 = (re_node_set *)0x100;
          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);
          elem[3].elems = pIVar14;
          if (pIVar14 == (Idx *)0x0) {
LAB_000495c0:
            pcVar45 = *(code **)(puVar44 + 0x2d10c);
LAB_000495c4:
            (*pcVar45)(pIVar36);
            iVar32 = iStack_e8;
            goto LAB_000495d4;
          }
          prVar3 = prVar3 + 8;
          iVar9 = 0;
          iVar32 = iVar4;
          do {
            prVar27 = (re_node_set *)0x1;
            iVar19 = iVar9;
            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;
                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {
              if (((uint)prVar20 & 1) != 0) {
                iVar42 = 0;
                iVar23 = iVar32;
                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {
                  do {
                    puVar35 = (uint *)(iVar23 + 0xc20);
                    iVar42 = iVar42 + 1;
                    iVar23 = iVar23 + 0x20;
                  } while (((uint)prVar27 & *puVar35) == 0);
                  iVar42 = iVar42 * 4;
                }
                if (((uint)prVar27 & prVar3->alloc) == 0) {
                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);
                }
                else {
                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);
                }
              }
              prVar27 = (re_node_set *)((int)prVar27 << 1);
              iVar19 = iVar19 + 1;
            }
            iVar9 = iVar9 + 0x20;
            pprVar33 = pprVar33 + 1;
            prVar3 = (re_node_set *)&prVar3->nelem;
            iVar32 = iVar32 + 4;
          } while (iVar9 != 0x100);
        }
        pcVar46 = *(code **)(puVar44 + 0x2d10c);
        if ((int)prStack_a4 << 0x15 < 0) {
          prVar27 = (re_node_set *)0x0;
          do {
            if ((*puVar8 & 0x400) != 0) {
              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];
              pIVar14[10] = IVar5;
              if (bVar2) {
                pIVar14[0x10a] = IVar5;
              }
              break;
            }
            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);
            puVar8 = puVar8 + 8;
          } while (prVar27 != prVar38);
          pcVar46 = *(code **)(puVar44 + 0x2d10c);
        }
        (*pcVar46)(pIVar36);
        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);
        iVar32 = iVar4;
        do {
          iVar9 = iVar32 + 0xc;
          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));
          iVar32 = iVar9;
        } while (iVar4 + (int)prVar38 * 0xc != iVar9);
        (**(code **)(puVar44 + 0x2d10c))(iVar4);
        rVar6 = _REG_NOMATCH;
        goto LAB_00048f60;
      }
    }
LAB_000495d4:
    (**(code **)(puVar44 + 0x2d10c))(iVar32);
    iVar32 = iVar4;
    do {
      iVar9 = iVar32 + 0xc;
      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));
      iVar32 = iVar9;
    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);
    (**(code **)(puVar44 + 0x2d10c))(iVar4);
LAB_00048f5c:
    rVar6 = _REG_NOERROR;
    goto LAB_00048f60;
  }
  (**(code **)(puVar44 + 0x2d10c))(iVar4);
  if (prVar38 != (re_node_set *)0x0) {
    rVar6 = _REG_NOERROR;
    goto LAB_00048f60;
  }
  goto LAB_00049784;
}



/* WARNING: Type propagation algorithm not settling */

uint FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)

{
  byte bVar1;
  bool bVar2;
  uint *******pppppppuVar3;
  int iVar4;
  uint uVar5;
  int *piVar6;
  uint *puVar7;
  code *pcVar8;
  int **ppiVar9;
  int **ppiVar10;
  uint ******ppppppuVar11;
  uint *puVar12;
  undefined4 *puVar13;
  uint *******pppppppuVar14;
  uint *******pppppppuVar15;
  uint *****pppppuVar16;
  uint *******pppppppuVar17;
  uint ******ppppppuVar18;
  undefined4 *puVar19;
  uint *******pppppppuVar20;
  uint uVar21;
  undefined4 *puVar22;
  uint uVar23;
  uint ****ppppuVar24;
  int iVar25;
  uint ******ppppppuVar26;
  uint *puVar27;
  int iVar28;
  int iVar29;
  int **ppiVar30;
  int iVar31;
  undefined4 *puVar32;
  int unaff_s0;
  int *piVar33;
  uint *******pppppppuVar34;
  uint ******ppppppuVar35;
  int iVar36;
  uint *******unaff_s2;
  uint *******pppppppuVar37;
  int unaff_s3;
  undefined *puVar38;
  uint *******unaff_s5;
  undefined *unaff_s6;
  undefined4 *unaff_s7;
  undefined *puVar39;
  code *pcVar40;
  int *unaff_s8;
  undefined4 uVar41;
  int local_124;
  int local_118;
  int local_f4;
  undefined1 *local_f0;
  undefined4 local_ec;
  int local_e8;
  uint *******local_e4;
  uint local_e0;
  uint local_dc;
  uint local_d8;
  uint local_d4;
  uint local_d0;
  uint local_cc;
  uint local_c8;
  uint ******local_c4;
  uint local_c0;
  uint local_bc;
  uint local_b8;
  uint local_b4;
  uint local_b0;
  uint local_ac;
  uint local_a8;
  int *local_a4;
  uint local_a0;
  uint local_9c;
  uint local_98;
  uint local_94;
  uint local_90;
  uint local_8c;
  uint local_88;
  int *local_84;
  int local_80;
  int local_7c;
  uint *******local_78;
  int local_74;
  undefined *local_70;
  uint *******local_6c;
  undefined *local_68;
  undefined4 *local_64;
  int *local_60;
  undefined4 local_5c;
  undefined4 local_38;
  undefined4 local_34;
  uint ******local_30;
  uint *******local_2c;
  
  puVar39 = PTR___stack_chk_guard_00075be8;
  local_38 = 0;
  local_34 = 0;
  local_30 = (uint ******)0x0;
  iVar36 = param_1[7] + (int)param_2 * 0xc;
  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;
  iVar25 = *(int *)(iVar36 + 4);
  pppppppuVar20 = param_2;
  puVar38 = PTR_LAB_00075920;
  if (0 < iVar25) {
    unaff_s7 = &local_38;
    unaff_s0 = 0;
    unaff_s5 = (uint *******)(iVar36 + 8);
    puVar38 = PTR_LAB_00075920 + 0x5230;
    unaff_s6 = PTR_LAB_00075920 + 0x6140;
    do {
      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);
      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))
      {
        iVar28 = (int)pppppppuVar3 * 0xc;
        iVar31 = param_1[5] + iVar28;
        puVar32 = *(undefined4 **)(iVar31 + 8);
        pppppppuVar20 = unaff_s5;
        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);
        if (*(int *)(iVar31 + 4) < 2) {
          if (iVar4 == 0) {
            pppppppuVar20 = (uint *******)(param_3 + 8);
            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));
            if (iVar4 != 0) goto LAB_000488c0;
          }
        }
        else if ((iVar4 == 0) &&
                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {
LAB_000488c0:
          iVar25 = param_1[7];
LAB_000488c4:
          pppppppuVar20 = param_4;
          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);
          if (uVar5 != 0) {
            (*(code *)PTR_free_00075bfc)(local_30);
            goto LAB_00048a80;
          }
          iVar25 = *(int *)(iVar36 + 4);
        }
        else {
          pppppppuVar20 = unaff_s5;
          if ((0 < (int)puVar32[1]) &&
             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {
            pppppppuVar20 = (uint *******)(param_3 + 8);
            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));
            if (iVar4 != 0) {
              iVar25 = param_1[7];
              goto LAB_000488c4;
            }
          }
        }
      }
      unaff_s0 = unaff_s0 + 1;
    } while (unaff_s0 < iVar25);
    unaff_s2 = param_2;
    unaff_s3 = param_3;
    unaff_s8 = param_1;
    if (0 < iVar25) {
      iVar4 = 0;
      iVar28 = param_3 + 4;
      pppppppuVar3 = (uint *******)(param_3 + 8);
      pppppppuVar17 = &local_30;
      do {
        pppppppuVar37 = pppppppuVar17;
        iVar31 = FUN_00045230(local_34,pppppppuVar17,
                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));
        pppppppuVar20 = pppppppuVar17;
        if (iVar31 == 0) {
          iVar29 = *(int *)(param_3 + 4);
          pppppppuVar17 = pppppppuVar3;
          iVar31 = FUN_00045230(iVar29);
          pppppppuVar20 = pppppppuVar3;
          pppppppuVar3 = pppppppuVar17;
          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {
            *(int *)(param_3 + 4) = iVar29 + -1;
            FUN_00045494(iVar28);
            iVar25 = *(int *)(iVar36 + 4);
            pppppppuVar20 = pppppppuVar17;
          }
        }
        iVar4 = iVar4 + 1;
        pppppppuVar17 = pppppppuVar37;
      } while (iVar4 < iVar25);
    }
  }
  (*(code *)PTR_free_00075bfc)(local_30);
  uVar5 = 0;
  param_2 = unaff_s2;
  param_3 = unaff_s3;
  param_1 = unaff_s8;
LAB_00048a80:
  if (local_2c == *(uint ********)puVar39) {
    return uVar5;
  }
  uVar41 = 0x48af0;
  pppppppuVar17 = local_2c;
  puVar39 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  piVar6 = *(int **)(puVar39 + 0x2d0f8);
  local_84 = (int *)*piVar6;
  pppppppuVar3 = pppppppuVar20;
  local_80 = unaff_s0;
  local_7c = iVar36;
  local_78 = param_2;
  local_74 = param_3;
  local_70 = puVar38;
  local_6c = unaff_s5;
  local_68 = unaff_s6;
  local_64 = unaff_s7;
  local_60 = param_1;
  local_5c = uVar41;
  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);
  if (iVar25 == 0) goto LAB_00048f5c;
  ppppppuVar18 = pppppppuVar20[2];
  pppppppuVar20[0xb] = (uint ******)0x0;
  puVar7 = (uint *)(iVar25 + 0xc00);
  pppppppuVar20[0xc] = (uint ******)0x0;
  local_e4 = (uint *******)0x0;
  local_e0 = 0;
  local_dc = 0;
  local_d8 = 0;
  local_d4 = 0;
  local_d0 = 0;
  local_cc = 0;
  local_c8 = 0;
  if (0 < (int)ppppppuVar18) {
    iVar36 = *(int *)(puVar39 + 0x2ce30);
    local_124 = 0;
    iVar4 = *(int *)(puVar39 + 0x2ce30);
    pppppppuVar37 = (uint *******)0x0;
LAB_00048bd4:
    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;
    bVar1 = *(byte *)(ppppppuVar35 + 1);
    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;
    if (bVar1 == 1) {
      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));
      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));
      *pppppppuVar34 = (uint ******)pppppppuVar3;
LAB_00048fc0:
      pppppppuVar34 = local_e4;
      if (uVar5 == 0) goto LAB_000490bc;
      if ((uVar5 & 0x20) == 0) {
        if ((uVar5 & 0x80) != 0) goto LAB_00049388;
LAB_00048fdc:
        if ((uVar5 & 4) != 0) {
          if (bVar1 == 1) {
            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;
            ppppppuVar11 = pppppppuVar17[0x17];
          }
          else {
            ppppppuVar11 = pppppppuVar17[0x17];
          }
          if ((int)ppppppuVar11 < 2) {
            pppppppuVar15 = pppppppuVar17 + 0x18;
            uVar21 = 0;
            pppppppuVar34 = (uint *******)&local_e4;
            do {
              pppppppuVar14 = pppppppuVar34 + 1;
              ppppppuVar11 = *pppppppuVar15;
              pppppppuVar15 = pppppppuVar15 + 1;
              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);
              *pppppppuVar34 = (uint ******)pppppppuVar3;
              uVar21 = uVar21 | (uint)pppppppuVar3;
              pppppppuVar34 = pppppppuVar14;
            } while (&local_c4 != pppppppuVar14);
          }
          else {
            ppppppuVar11 = pppppppuVar17[0xf];
            pppppppuVar15 = pppppppuVar17 + 0x18;
            uVar21 = 0;
            pppppppuVar34 = (uint *******)&local_e4;
            do {
              pppppppuVar3 = pppppppuVar34 + 1;
              pppppuVar16 = *ppppppuVar11;
              ppppppuVar26 = *pppppppuVar15;
              ppppppuVar11 = ppppppuVar11 + 1;
              pppppppuVar15 = pppppppuVar15 + 1;
              ppppppuVar26 = (uint ******)
                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);
              *pppppppuVar34 = ppppppuVar26;
              uVar21 = uVar21 | (uint)ppppppuVar26;
              pppppppuVar34 = pppppppuVar3;
            } while (&local_c4 != pppppppuVar3);
          }
          if (uVar21 == 0) goto LAB_00048c28;
        }
        if ((uVar5 & 8) == 0) {
LAB_000490bc:
          pppppppuVar34 = (uint *******)0x0;
          if (0 < (int)pppppppuVar37) {
            pppppppuVar34 = (uint *******)0x0;
            puVar12 = puVar7;
            do {
              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);
              if ((bVar1 != 1) ||
                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>
                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {
                uVar5 = 0;
                pppppppuVar3 = (uint *******)&local_e4;
                pppppppuVar15 = &local_c4;
                puVar27 = puVar12;
                do {
                  pppppppuVar14 = pppppppuVar3 + 1;
                  uVar21 = *puVar27;
                  ppppppuVar18 = *pppppppuVar3;
                  puVar27 = puVar27 + 1;
                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);
                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;
                  pppppppuVar3 = pppppppuVar14;
                  pppppppuVar15 = pppppppuVar15 + 1;
                } while (&local_c4 != pppppppuVar14);
                pppppppuVar3 = (uint *******)&local_e4;
                if (uVar5 != 0) {
                  uVar21 = 0;
                  uVar5 = 0;
                  puVar27 = puVar12;
                  ppiVar30 = &local_a4;
                  do {
                    uVar23 = *puVar27;
                    puVar27 = puVar27 + 1;
                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);
                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);
                    *ppiVar30 = piVar33;
                    *pppppppuVar3 = ppppppuVar18;
                    uVar5 = uVar5 | (uint)piVar33;
                    uVar21 = uVar21 | (uint)ppppppuVar18;
                    pppppppuVar3 = pppppppuVar3 + 1;
                    ppiVar30 = ppiVar30 + 1;
                  } while (puVar12 + 8 != puVar27);
                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);
                  if (uVar5 != 0) {
                    local_118 = (int)pppppppuVar37 * 2;
                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;
                    *puVar27 = (uint)local_a4;
                    puVar27[1] = local_a0;
                    puVar27[2] = local_9c;
                    puVar27[3] = local_98;
                    puVar27[4] = local_94;
                    puVar27[5] = local_90;
                    puVar27[6] = local_8c;
                    puVar27[7] = local_88;
                    puVar12[1] = local_c0;
                    puVar12[2] = local_bc;
                    *puVar12 = (uint)local_c4;
                    puVar12[3] = local_b8;
                    puVar12[4] = local_b4;
                    puVar12[5] = local_b0;
                    puVar12[6] = local_ac;
                    puVar12[7] = local_a8;
                    pppppppuVar3 = pppppppuVar15;
                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);
                    if (iVar28 != 0) goto LAB_000493b8;
                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);
                  }
                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];
                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);
                  if (iVar28 == 0) {
                    local_118 = (int)pppppppuVar37 << 1;
                    goto LAB_000493b8;
                  }
                  if (uVar21 == 0) break;
                }
              }
              puVar12 = puVar12 + 8;
              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);
            } while ((int)pppppppuVar34 < (int)pppppppuVar37);
          }
          local_118 = (int)pppppppuVar37 * 2;
          if (pppppppuVar37 == pppppppuVar34) {
            ppppppuVar18 = pppppppuVar20[3];
            pcVar8 = *(code **)(puVar39 + 0x2d03c);
            puVar12 = puVar7 + (int)pppppppuVar37 * 8;
            *puVar12 = (uint)local_e4;
            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);
            puVar12[1] = local_e0;
            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);
            puVar12[2] = local_dc;
            puVar12[3] = local_d8;
            puVar12[4] = local_d4;
            puVar12[5] = local_d0;
            puVar12[6] = local_cc;
            puVar12[7] = local_c8;
            ppppppuVar35 = *pppppppuVar3;
            *puVar32 = 1;
            puVar32[1] = 1;
            puVar12 = (uint *)(*pcVar8)(4);
            puVar32[2] = puVar12;
            if (puVar12 != (uint *)0x0) {
              ppppppuVar18 = pppppppuVar20[2];
              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);
              *puVar12 = (uint)ppppppuVar35;
              local_e4 = (uint *******)0x0;
              local_e0 = 0;
              local_dc = 0;
              local_d8 = 0;
              local_d4 = 0;
              local_d0 = 0;
              local_cc = 0;
              local_c8 = 0;
              goto LAB_00048c28;
            }
            puVar32[1] = 0;
            *puVar32 = 0;
            if (pppppppuVar37 == (uint *******)0x0) {
              (**(code **)(puVar39 + 0x2d10c))(iVar25);
            }
            else {
LAB_000493b8:
              iVar36 = iVar25;
              do {
                iVar4 = iVar36 + 0xc;
                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));
                iVar36 = iVar4;
              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);
              (**(code **)(puVar39 + 0x2d10c))(iVar25);
            }
            goto LAB_00048f5c;
          }
          ppppppuVar18 = pppppppuVar20[2];
          goto LAB_00048c28;
        }
        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {
          pppppppuVar34 = pppppppuVar17 + 0x18;
          if ((int)pppppppuVar17[0x17] < 2) {
            pppppppuVar3 = (uint *******)0x0;
            pppppppuVar15 = (uint *******)&local_e4;
            do {
              pppppppuVar14 = pppppppuVar15 + 1;
              ppppppuVar11 = *pppppppuVar34;
              ppppppuVar26 = *pppppppuVar15;
              pppppppuVar34 = pppppppuVar34 + 1;
              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);
              pppppppuVar3 = (uint *******)
                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);
              pppppppuVar15 = pppppppuVar14;
            } while (pppppppuVar14 != &local_c4);
          }
          else {
            ppppppuVar11 = pppppppuVar17[0xf];
            pppppppuVar3 = (uint *******)0x0;
            pppppppuVar15 = (uint *******)&local_e4;
            do {
              pppppppuVar14 = pppppppuVar15 + 1;
              pppppuVar16 = *ppppppuVar11;
              ppppppuVar26 = *pppppppuVar34;
              ppppppuVar11 = ppppppuVar11 + 1;
              pppppppuVar34 = pppppppuVar34 + 1;
              ppppppuVar26 = (uint ******)
                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);
              *pppppppuVar15 = ppppppuVar26;
              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);
              pppppppuVar15 = pppppppuVar14;
            } while (&local_c4 != pppppppuVar14);
          }
          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;
          goto LAB_000490bc;
        }
        local_e4 = (uint *******)0x0;
      }
      else {
        local_e0 = 0;
        local_e4 = (uint *******)0x0;
        local_dc = 0;
        local_d8 = 0;
        local_d4 = 0;
        local_d0 = 0;
        local_cc = 0;
        local_c8 = 0;
        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;
        local_e4 = (uint *******)0x400;
        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;
LAB_00049388:
        local_e4 = (uint *******)0x0;
      }
      local_e4 = (uint *******)0x0;
      local_e0 = 0;
      local_dc = 0;
      local_d8 = 0;
      local_d4 = 0;
      local_d0 = 0;
      local_cc = 0;
      local_c8 = 0;
    }
    else {
      if (bVar1 == 3) {
        pppppuVar16 = *ppppppuVar35;
        pppppppuVar34 = (uint *******)&local_e4;
        do {
          pppppppuVar15 = pppppppuVar34 + 1;
          ppppuVar24 = *pppppuVar16;
          pppppuVar16 = pppppuVar16 + 1;
          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);
          *pppppppuVar34 = (uint ******)pppppppuVar3;
          pppppppuVar34 = pppppppuVar15;
        } while (&local_c4 != pppppppuVar15);
        goto LAB_00048fc0;
      }
      if (bVar1 == 5) {
        if ((int)pppppppuVar17[0x17] < 2) {
          local_e4 = (uint *******)0xffffffff;
          local_e0 = 0xffffffff;
          local_dc = 0xffffffff;
          local_d8 = 0xffffffff;
          local_d4 = 0xffffffff;
          local_d0 = 0xffffffff;
          local_cc = 0xffffffff;
          local_c8 = 0xffffffff;
        }
        else {
          ppppppuVar11 = pppppppuVar17[0xf];
          pppppppuVar3 = (uint *******)&local_e4;
          do {
            pppppppuVar34 = pppppppuVar3 + 1;
            pppppuVar16 = *ppppppuVar11;
            ppppppuVar11 = ppppppuVar11 + 1;
            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);
            pppppppuVar3 = pppppppuVar34;
          } while (&local_c4 != pppppppuVar34);
        }
        ppppppuVar11 = pppppppuVar17[0x20];
joined_r0x00049318:
        if (((uint)ppppppuVar11 & 0x40) == 0) {
          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);
        }
        pppppppuVar3 = local_e4;
        if (((uint)ppppppuVar11 & 0x80) != 0) {
          pppppppuVar3 = (uint *******)&SUB_fffffffe;
          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);
        }
        goto LAB_00048fc0;
      }
      pppppppuVar3 = (uint *******)0xffffffff;
      if (bVar1 == 7) {
        ppppppuVar11 = pppppppuVar17[0x20];
        local_e4 = (uint *******)0xffffffff;
        local_e0 = 0xffffffff;
        local_dc = 0xffffffff;
        local_d8 = 0xffffffff;
        goto joined_r0x00049318;
      }
    }
LAB_00048c28:
    local_124 = local_124 + 1;
    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;
    goto LAB_00048bd4;
  }
  (**(code **)(puVar39 + 0x2d10c))(iVar25);
LAB_00049784:
  pppppppuVar3 = (uint *******)0x100;
  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);
  pppppppuVar20[0xb] = ppppppuVar18;
  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);
LAB_00048f60:
  if (local_84 == (int *)*piVar6) {
    return uVar5;
  }
  piVar6 = local_84;
  (**(code **)(puVar39 + 0x2d0b8))();
  if (*(char *)(pppppppuVar3 + 6) == '\x10') {
    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];
    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];
    pppppppuVar3[7] = ppppppuVar18;
    return 0;
  }
  pppppppuVar3[3] = (uint ******)pppppppuVar3;
  ppppppuVar18 = (uint ******)FUN_000445c0();
  pppppppuVar3[7] = ppppppuVar18;
  if (ppppppuVar18 == (uint ******)0xffffffff) {
    uVar5 = 0xc;
  }
  else {
    if (*(char *)(pppppppuVar3 + 6) == '\f') {
      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;
      *(uint *)(iVar25 + 4) =
           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;
      return 0;
    }
    uVar5 = 0;
  }
  return uVar5;
code_r0x00048c3c:
  if (0 < (int)pppppppuVar37) {
    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);
    local_ec = 0;
    iVar4 = (int)local_f0 * 4;
    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);
    local_e8 = iVar36;
    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {
      local_118 = (int)pppppppuVar37 << 1;
    }
    else {
      local_118 = (int)pppppppuVar37 * 2;
      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);
      if (puVar32 != (undefined4 *)0x0) {
        iVar4 = iVar4 + -4;
        ppiVar30 = &local_a4;
        iVar28 = 0;
        puVar13 = puVar32 + (int)pppppppuVar37;
        local_a4 = (int *)0x0;
        piVar33 = (int *)(iVar25 + 4);
        local_a0 = 0;
        local_9c = 0;
        iVar36 = *(int *)(puVar39 + 0x2ce30);
        local_98 = 0;
        bVar2 = false;
        local_94 = 0;
        local_90 = 0;
        local_8c = 0;
        local_88 = 0;
        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);
        do {
          iVar31 = *piVar33;
          iVar29 = 0;
          local_ec = 0;
          if (0 < iVar31) {
            do {
              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {
                pppppppuVar3 = (uint *******)
                               (pppppppuVar17[6] +
                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);
                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);
                if (local_f4 != 0) goto LAB_000495c0;
                iVar31 = *piVar33;
              }
              iVar29 = iVar29 + 1;
            } while (iVar29 < iVar31);
          }
          pppppppuVar3 = pppppppuVar17;
          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);
          *(int *)((int)puVar32 + iVar28) = iVar31;
          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))
          goto LAB_000495c4;
          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {
            *(int *)((int)puVar13 + iVar28) = iVar31;
            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;
          }
          else {
            pppppppuVar3 = pppppppuVar17;
            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);
            *(int *)((int)puVar13 + iVar28) = iVar31;
            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))
            goto LAB_000495c4;
            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {
              bVar2 = true;
            }
            pppppppuVar3 = pppppppuVar17;
            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);
            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;
            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;
          }
          iVar31 = iVar28 * 8 + iVar25;
          ppiVar9 = ppiVar30;
          do {
            ppiVar10 = ppiVar9 + 1;
            puVar12 = (uint *)(iVar31 + 0xc00);
            iVar31 = iVar31 + 4;
            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);
            ppiVar9 = ppiVar10;
          } while (&local_84 != ppiVar10);
          iVar28 = iVar28 + 4;
          piVar33 = piVar33 + 3;
        } while (iVar4 != iVar28);
        if (bVar2) {
          pppppppuVar3 = (uint *******)0x200;
          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);
          pppppppuVar20[0xc] = ppppppuVar18;
          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;
          iVar36 = iVar25;
          ppppppuVar35 = ppppppuVar18;
          do {
            piVar33 = *ppiVar30;
            if (piVar33 != (int *)0x0) {
              pppppppuVar3 = (uint *******)0x1;
              ppppppuVar11 = ppppppuVar35;
              do {
                if (((uint)piVar33 & 1) != 0) {
                  iVar28 = 0;
                  puVar19 = puVar13;
                  puVar22 = puVar32;
                  iVar4 = iVar36;
                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {
                    do {
                      puVar12 = (uint *)(iVar4 + 0xc20);
                      iVar28 = iVar28 + 1;
                      iVar4 = iVar4 + 0x20;
                    } while (((uint)pppppppuVar3 & *puVar12) == 0);
                    puVar19 = puVar13 + iVar28;
                    puVar22 = puVar32 + iVar28;
                  }
                  *ppppppuVar11 = (uint *****)*puVar22;
                  ppppppuVar11[0x100] = (uint *****)*puVar19;
                }
                piVar33 = (int *)((uint)piVar33 >> 1);
                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);
                ppppppuVar11 = ppppppuVar11 + 1;
              } while (piVar33 != (int *)0x0);
            }
            ppppppuVar35 = ppppppuVar35 + 0x20;
            ppiVar30 = ppiVar30 + 1;
            iVar36 = iVar36 + 4;
          } while (ppppppuVar18 + 0x100 != ppppppuVar35);
        }
        else {
          pppppppuVar3 = (uint *******)0x100;
          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);
          pppppppuVar20[0xb] = ppppppuVar18;
          if (ppppppuVar18 == (uint ******)0x0) {
LAB_000495c0:
            pcVar40 = *(code **)(puVar39 + 0x2d10c);
LAB_000495c4:
            (*pcVar40)(puVar32);
            iVar36 = local_e8;
            goto LAB_000495d4;
          }
          pppppppuVar17 = pppppppuVar17 + 0x18;
          iVar4 = 0;
          iVar36 = iVar25;
          do {
            pppppppuVar3 = (uint *******)0x1;
            iVar28 = iVar4;
            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))
            {
              if (((uint)piVar33 & 1) != 0) {
                iVar29 = 0;
                iVar31 = iVar36;
                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {
                  do {
                    puVar12 = (uint *)(iVar31 + 0xc20);
                    iVar29 = iVar29 + 1;
                    iVar31 = iVar31 + 0x20;
                  } while (((uint)pppppppuVar3 & *puVar12) == 0);
                  iVar29 = iVar29 * 4;
                }
                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {
                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);
                }
                else {
                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);
                }
              }
              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);
              iVar28 = iVar28 + 1;
            }
            iVar4 = iVar4 + 0x20;
            ppiVar30 = ppiVar30 + 1;
            pppppppuVar17 = pppppppuVar17 + 1;
            iVar36 = iVar36 + 4;
          } while (iVar4 != 0x100);
        }
        pcVar8 = *(code **)(puVar39 + 0x2d10c);
        if ((int)local_a4 << 0x15 < 0) {
          pppppppuVar3 = (uint *******)0x0;
          do {
            if ((*puVar7 & 0x400) != 0) {
              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];
              ppppppuVar18[10] = pppppuVar16;
              if (bVar2) {
                ppppppuVar18[0x10a] = pppppuVar16;
              }
              break;
            }
            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);
            puVar7 = puVar7 + 8;
          } while (pppppppuVar3 != pppppppuVar37);
          pcVar8 = *(code **)(puVar39 + 0x2d10c);
        }
        (*pcVar8)(puVar32);
        (**(code **)(puVar39 + 0x2d10c))(local_e8);
        iVar36 = iVar25;
        do {
          iVar4 = iVar36 + 0xc;
          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));
          iVar36 = iVar4;
        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);
        (**(code **)(puVar39 + 0x2d10c))(iVar25);
        uVar5 = 1;
        goto LAB_00048f60;
      }
    }
LAB_000495d4:
    (**(code **)(puVar39 + 0x2d10c))(iVar36);
    iVar36 = iVar25;
    do {
      iVar4 = iVar36 + 0xc;
      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));
      iVar36 = iVar4;
    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);
    (**(code **)(puVar39 + 0x2d10c))(iVar25);
LAB_00048f5c:
    uVar5 = 0;
    goto LAB_00048f60;
  }
  (**(code **)(puVar39 + 0x2d10c))(iVar25);
  if (pppppppuVar37 != (uint *******)0x0) {
    uVar5 = 0;
    goto LAB_00048f60;
  }
  goto LAB_00049784;
}


lui gp,0x3
addiu gp,gp,0x4d80
addu gp,gp,t9
addiu sp,sp,-0x58
lw v1,0x1c(a0)
lw v0,-0x7998(gp)
sw s1,0x34(sp)
sll s1,a1,0x1
sw zero,0x20(sp)
addu s1,s1,a1
sw zero,0x24(sp)
sw zero,0x28(sp)
sll s1,s1,0x2
sw v0,0x1c(sp)
sw gp,0x10(sp)
addu s1,v1,s1
sw ra,0x54(sp)
sw s8,0x50(sp)
sw s7,0x4c(sp)
sw s6,0x48(sp)
sw s5,0x44(sp)
sw s4,0x40(sp)
sw s3,0x3c(sp)
sw s2,0x38(sp)
sw s0,0x30(sp)
sw a3,0x18(sp)
lw v0,0x0(v0)
lw t0,0x4(s1)
sw v0,0x2c(sp)
blez t0,0x00048adc
_lw s4,-0x7c60(gp)
or s2,a1,zero
lw s6,-0x7c60(gp)
or s8,a0,zero
addiu s7,sp,0x20
or s3,a2,zero
or s0,zero,zero
addiu s5,s1,0x8
addiu s4,s4,0x5230
b 0x000488f4
_addiu s6,s6,0x6140
bne v0,zero,0x00048984
_nop
lw a0,0x4(s3)
bal 0x00045230
_addiu a1,s3,0x8
beq v0,zero,0x00048984
_lw gp,0x10(sp)
lw a2,0x1c(s8)
or a0,s7,zero
lw a1,0x18(sp)
or t9,s6,zero
bal 0x00046140
_addu a2,a2,t3
bne v0,zero,0x00048ac0
_lw gp,0x10(sp)
lw t0,0x4(s1)
addiu s0,s0,0x1
slt v0,s0,t0
beq v0,zero,0x000489c4
_nop
lw v0,0x8(s1)
sll v1,s0,0x2
addu v0,v0,v1
lw v0,0x0(v0)
beq s2,v0,0x000488e4
_sll a0,v0,0x3
lw v1,0x0(s8)
addu v1,v1,a0
lbu v1,0x4(v1)
andi v1,v1,0x8
beq v1,zero,0x000488e4
_sll t3,v0,0x1
lw t4,0x14(s8)
or a1,s5,zero
addu v0,t3,v0
or a0,t0,zero
sll t3,v0,0x2
or t9,s4,zero
addu t4,t4,t3
lw t6,0x8(t4)
lw t5,0x0(t6)
bal 0x00045230
_or a2,t5,zero
lw v1,0x4(t4)
slti v1,v1,0x2
beq v1,zero,0x000488a4
_lw gp,0x10(sp)
bne v0,zero,0x000488e4
_nop
lw a0,0x4(s3)
bal 0x00045230
_addiu a1,s3,0x8
bne v0,zero,0x000488c0
_lw gp,0x10(sp)
b 0x000488e8
_addiu s0,s0,0x1
lw t4,0x4(t6)
blez t4,0x000488e4
_or a1,s5,zero
or a2,t4,zero
or t9,s4,zero
bal 0x00045230
_or a0,t0,zero
bne v0,zero,0x000488e4
_lw gp,0x10(sp)
lw a0,0x4(s3)
bal 0x00045230
_addiu a1,s3,0x8
beq v0,zero,0x000488e4
_lw gp,0x10(sp)
b 0x000488c4
_lw a2,0x1c(s8)
blez t0,0x00048a68
_lw t4,-0x7c60(gp)
or t1,zero,zero
lw t6,-0x7c60(gp)
addiu t8,sp,0x28
addiu t5,s3,0x8
addiu t4,t4,0x5230
addiu t7,s3,0x4
addiu t6,t6,0x5494
lw v1,0x8(s1)
sll v0,t1,0x2
lw a0,0x24(sp)
or a1,t8,zero
or t9,t4,zero
addu v0,v1,v0
lw t2,0x0(v0)
bal 0x00045230
_or a2,t2,zero
bne v0,zero,0x00048a58
_lw gp,0x10(sp)
lw t3,0x4(s3)
or a1,t5,zero
bal 0x00045230
_or a0,t3,zero
addiu a2,v0,-0x1
bltz a2,0x00048a58
_lw gp,0x10(sp)
slt v0,a2,t3
beq v0,zero,0x00048a58
_addiu t3,t3,-0x1
or a1,t5,zero
sw t3,0x4(s3)
or t9,t6,zero
bal 0x00045494
_or a0,t7,zero
lw gp,0x10(sp)
lw t0,0x4(s1)
addiu t1,t1,0x1
slt v0,t1,t0
bne v0,zero,0x000489e8
_nop
lw a0,0x28(sp)
lw t9,-0x7984(gp)
jalr t9
_nop
or v0,zero,zero
lw gp,0x10(sp)
lw v1,0x1c(sp)
lw a0,0x2c(sp)
lw v1,0x0(v1)
bne a0,v1,0x00048ae4
_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,-0x7984(gp)
lw a0,0x28(sp)
jalr t9
_sw v0,0x18(sp)
lw gp,0x10(sp)
b 0x00048a80
_lw v0,0x18(sp)
b 0x00048a6c
_or a0,zero,zero
lw t9,-0x79d8(gp)
jalr t9
_nop
lui gp,0x3
addiu gp,gp,0x4a90
addu gp,gp,t9
lw v0,-0x7998(gp)
addiu sp,sp,-0xe8
lw t9,-0x7a54(gp)
sw v0,0x3c(sp)
sw s1,0xc4(sp)
or s1,a0,zero
sw gp,0x10(sp)
li a0,0x2c00
sw s2,0xc8(sp)
or s2,a1,zero
sw ra,0xe4(sp)
sw s8,0xe0(sp)
sw s7,0xdc(sp)
sw s6,0xd8(sp)
sw s5,0xd4(sp)
sw s4,0xd0(sp)
sw s3,0xcc(sp)
sw s0,0xc0(sp)
lw v0,0x0(v0)
sw v0,0xbc(sp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00048f5c
_sw v0,0x18(sp)
lw v0,0x18(sp)
addiu s4,sp,0x5c
lw a0,0x8(s2)
sw zero,0x2c(s2)
addiu v0,v0,0xc00
sw zero,0x30(s2)
sw zero,0x5c(sp)
sw v0,0x34(sp)
sw zero,0x60(sp)
sw zero,0x64(sp)
sw zero,0x68(sp)
sw zero,0x6c(sp)
sw zero,0x70(sp)
sw zero,0x74(sp)
blez a0,0x00049774
_sw zero,0x78(sp)
lw v0,-0x7c60(gp)
or s3,zero,zero
sw zero,0x1c(sp)
addiu v0,v0,0x33f8
sw v0,0x24(sp)
lw v0,-0x7c60(gp)
addiu v0,v0,0x69e0
sw v0,0x30(sp)
or v0,s4,zero
or s4,s2,zero
or s2,s3,zero
or s3,v0,zero
lw v1,0x1c(sp)
li a1,0x1
lw v0,0xc(s4)
lw a3,0x0(s1)
sll v1,v1,0x2
addu v0,v0,v1
sw v1,0x20(sp)
lw v0,0x0(v0)
sll v0,v0,0x3
addu s7,a3,v0
lw v1,0x4(s7)
lbu s8,0x4(s7)
beq s8,a1,0x00048fa0
_ext v1,v1,0xe,0xa
li v0,0x3
beq s8,v0,0x000494ec
_li v0,0x5
beq s8,v0,0x000492dc
_li v0,0x7
beq s8,v0,0x000494c8
_li a1,-0x1
lw v0,0x1c(sp)
addiu v0,v0,0x1
sw v0,0x1c(sp)
slt v0,v0,a0
bne v0,zero,0x00048bd4
_lw v1,0x1c(sp)
or s3,s2,zero
blez s3,0x000498a4
_or s2,s4,zero
addiu v0,s3,0x1
lw t9,-0x7a54(gp)
sw zero,0x54(sp)
sll s4,v0,0x2
sw v0,0x50(sp)
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
or s0,v0,zero
beq v0,zero,0x00049628
_sw v0,0x58(sp)
lui v0,0x1555
addiu v0,v0,0x51ab
slt v0,s3,v0
beq v0,zero,0x00049628
_sw zero,0x4c(sp)
sll v0,s3,0x1
lw t9,-0x7a54(gp)
addu s5,v0,s3
sw v0,0x28(sp)
sll v0,s5,0x2
sw v0,0x44(sp)
jalr t9
_or a0,v0,zero
lw gp,0x10(sp)
beq v0,zero,0x000495d4
_sw v0,0x20(sp)
lw v1,0x20(sp)
addiu v0,s4,-0x4
lw a0,0x18(sp)
addiu s5,sp,0x9c
sw v0,0x30(sp)
or s4,zero,zero
addu v1,v1,v0
sw zero,0x9c(sp)
addiu s0,a0,0x4
sw zero,0x4(s5)
addu v0,v1,v0
sw v1,0x2c(sp)
addiu s6,sp,0x50
sw zero,0x8(s5)
sw v0,0x38(sp)
lw v0,-0x7c60(gp)
sw zero,0xc(s5)
sw zero,0x40(sp)
addiu v0,v0,0x59ac
sw zero,0x10(s5)
sw zero,0x14(s5)
sw v0,0x1c(sp)
lw v0,-0x7c60(gp)
sw zero,0x18(s5)
sw zero,0x1c(s5)
addiu v0,v0,0x6cac
sw v0,0x24(sp)
lw a1,0x0(s0)
or s7,zero,zero
sw zero,0x54(sp)
blez a1,0x00048d98
_li s8,-0x1
lw a0,0x4(s0)
sll v1,s7,0x2
lw v0,0xc(s1)
addu v1,a0,v1
lw v1,0x0(v1)
sll v1,v1,0x2
addu v0,v0,v1
lw v0,0x0(v0)
beq v0,s8,0x00048d88
_sll v1,v0,0x1
lw a1,0x18(s1)
lw t9,0x1c(sp)
or a0,s6,zero
addu v0,v1,v0
sll v0,v0,0x2
jalr t9
_addu a1,a1,v0
lw gp,0x10(sp)
bne v0,zero,0x000495c0
_sw v0,0x4c(sp)
lw a1,0x0(s0)
addiu s7,s7,0x1
slt v0,s7,a1
bne v0,zero,0x00048d34
_nop
lw v0,0x20(sp)
addiu s7,sp,0x4c
lw t9,0x24(sp)
or a3,zero,zero
or a2,s6,zero
addu s8,v0,s4
or a1,s1,zero
jalr t9
_or a0,s7,zero
lw gp,0x10(sp)
beq v0,zero,0x000496fc
_sw v0,0x0(s8)
lbu v1,0x34(v0)
andi v1,v1,0x1
bne v1,zero,0x0004953c
_lw v1,0x2c(sp)
addu a0,v1,s4
lw v1,0x38(sp)
addu v1,v1,s4
sw v0,0x0(a0)
sw v0,0x0(v1)
lw s7,0x18(sp)
sll a0,s4,0x3
addiu a2,sp,0xbc
or s8,s5,zero
addu a0,a0,s7
or v0,s5,zero
lw v1,0x0(v0)
addiu v0,v0,0x4
lw a1,0xc00(a0)
addiu a0,a0,0x4
or v1,v1,a1
bne a2,v0,0x00048e04
_sw v1,-0x4(v0)
lw v0,0x30(sp)
addiu s4,s4,0x4
bne v0,s4,0x00048d20
_addiu s0,s0,0xc
lw v0,0x40(sp)
bne v0,zero,0x000497dc
_lw t9,-0x7bb8(gp)
li a1,0x100
jalr t9
_li a0,0x4
lw gp,0x10(sp)
beq v0,zero,0x000495c0
_sw v0,0x2c(s2)
lw t3,0x18(sp)
addiu t0,s1,0x60
lw t5,0x20(sp)
or t2,zero,zero
lw t6,0x2c(sp)
li t4,0x100
lw v1,0x0(s8)
or a3,t2,zero
beq v1,zero,0x00048e98
_li a1,0x1
andi a0,v1,0x1
bne a0,zero,0x00049710
_nop
srl v1,v1,0x1
sll a1,a1,0x1
bne v1,zero,0x00048e7c
_addiu a3,a3,0x1
addiu t2,t2,0x20
addiu s8,s8,0x4
addiu t0,t0,0x4
bne t2,t4,0x00048e6c
_addiu t3,t3,0x4
lw v1,0x9c(sp)
ext v1,v1,0xa,0x1
beq v1,zero,0x00048ee4
_lw t9,-0x7984(gp)
lw v1,0x34(sp)
or a1,zero,zero
lw a0,0x0(v1)
andi a0,a0,0x400
bne a0,zero,0x000497b8
_nop
addiu a1,a1,0x1
bne a1,s3,0x00048ec4
_addiu v1,v1,0x20
lw t9,-0x7984(gp)
lw v0,0x18(sp)
lw v1,0x44(sp)
lw a0,0x20(sp)
jalr t9
_addu s5,v0,v1
lw gp,0x10(sp)
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x58(sp)
lw gp,0x10(sp)
lw t9,-0x7984(gp)
addiu s7,s7,0xc
jalr t9
_lw a0,-0x4(s7)
bne s5,s7,0x00048f0c
_lw gp,0x10(sp)
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x18(sp)
li v0,0x1
b 0x00048f60
_lw gp,0x10(sp)
or s3,s2,zero
sw zero,0x4(s5)
bne s2,zero,0x000493b8
_sw zero,0x0(s5)
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x18(sp)
lw gp,0x10(sp)
or v0,zero,zero
lw v1,0x3c(sp)
lw a0,0xbc(sp)
lw v1,0x0(v1)
bne a0,v1,0x000498c0
_lw ra,0xe4(sp)
lw s8,0xe0(sp)
lw s7,0xdc(sp)
lw s6,0xd8(sp)
lw s5,0xd4(sp)
lw s4,0xd0(sp)
lw s3,0xcc(sp)
lw s2,0xc8(sp)
lw s1,0xc4(sp)
lw s0,0xc0(sp)
jr ra
_addiu sp,sp,0xe8
lbu a1,0x0(s7)
sra v0,a1,0x5
sllv a1,s8,a1
sll v0,v0,0x2
addu v0,s3,v0
lw a2,0x0(v0)
or a1,a2,a1
sw a1,0x0(v0)
beq v1,zero,0x000490bc
_nop
andi v0,v1,0x20
bne v0,zero,0x00049348
_andi v0,v1,0x80
bne v0,zero,0x00049388
_andi v0,v1,0x4
beq v0,zero,0x0004904c
_nop
li v0,0x1
beq s8,v0,0x000494a0
_nop
lw v0,0x5c(s1)
slti v0,v0,0x2
bne v0,zero,0x00049464
_addiu t4,s1,0x60
lw t5,0x3c(s1)
addiu t4,s1,0x60
addiu t8,sp,0x7c
or a2,zero,zero
or a1,s3,zero
addiu a1,a1,0x4
lw v0,0x0(t5)
lw t0,0x0(t4)
addiu t5,t5,0x4
lw a3,-0x4(a1)
addiu t4,t4,0x4
nor v0,zero,v0
or v0,v0,t0
and v0,v0,a3
sw v0,-0x4(a1)
bne t8,a1,0x00049014
_or a2,a2,v0
beq a2,zero,0x00048c24
_nop
andi v1,v1,0x8
beq v1,zero,0x000490bc
_nop
li v0,0x1
beq s8,v0,0x0004951c
_nop
lw v0,0x5c(s1)
slti v0,v0,0x2
bne v0,zero,0x00049424
_addiu a2,s1,0x60
lw t4,0x3c(s1)
addiu t7,sp,0x7c
or a1,zero,zero
or v1,s3,zero
addiu v1,v1,0x4
lw t0,0x0(t4)
lw v0,0x0(a2)
addiu t4,t4,0x4
lw a3,-0x4(v1)
addiu a2,a2,0x4
and v0,v0,t0
nor v0,zero,v0
and v0,v0,a3
sw v0,-0x4(v1)
bne t7,v1,0x00049084
_or a1,a1,v0
beq a1,zero,0x00048c24
_nop
blez s2,0x00049134
_or s0,zero,zero
lw s5,0x34(sp)
sw s1,0x38(sp)
or s1,s2,zero
or s2,s0,zero
or v0,s5,zero
or s0,s3,zero
li v1,0x1
bne s8,v1,0x00049144
_sll a1,s2,0x5
lbu a0,0x0(s7)
sra v1,a0,0x5
sll v1,v1,0x2
addu v1,s5,v1
addu v1,v1,a1
lw v1,0x0(v1)
srlv v1,v1,a0
andi v1,v1,0x1
bne v1,zero,0x00049148
_addiu t0,sp,0x7c
addiu s3,v0,0x20
addiu s2,s2,0x1
slt v1,s2,s1
bne v1,zero,0x000490dc
_or v0,s3,zero
or s3,s0,zero
or s0,s2,zero
or s2,s1,zero
lw s1,0x38(sp)
beq s2,s0,0x00049634
_sll v0,s2,0x1
b 0x00048c24
_lw a0,0x8(s4)
addiu t0,sp,0x7c
or t2,zero,zero
or a1,s0,zero
or t4,t0,zero
or t1,v0,zero
or a0,s0,zero
addiu a0,a0,0x4
lw a2,0x0(t1)
lw v1,-0x4(a0)
addiu t0,t0,0x4
addiu t1,t1,0x4
and v1,v1,a2
sw v1,-0x4(t0)
bne t4,a0,0x0004915c
_or t2,t2,v1
beq t2,zero,0x00049114
_addiu s3,v0,0x20
addiu t3,sp,0x9c
or s6,zero,zero
or t6,zero,zero
or t0,v0,zero
lw a3,0x0(t0)
addiu t3,t3,0x4
lw a2,0x0(a1)
addiu a1,a1,0x4
addiu t0,t0,0x4
nor v1,zero,a3
nor a0,zero,a2
and a0,a0,a3
and v1,v1,a2
sw a0,-0x4(t3)
sw v1,-0x4(a1)
or t6,t6,a0
bne s3,t0,0x00049198
_or s6,s6,v1
sll v1,s2,0x1
lw a2,0x18(sp)
addu v1,v1,s2
sll v1,v1,0x2
beq t6,zero,0x000492a4
_addu v1,a2,v1
sll t0,s1,0x5
lw ra,0x9c(sp)
lw t3,0x98(sp)
sll a0,s1,0x1
addu t0,s5,t0
lw t9,0x80(sp)
lw t8,0x84(sp)
or a1,v1,zero
lw t7,0x88(sp)
lw t6,0x8c(sp)
lw t5,0x90(sp)
lw t4,0x94(sp)
sw ra,0x0(t0)
lw ra,0xa0(sp)
sw a0,0x28(sp)
addu a0,a0,s1
sw v1,0x2c(sp)
sw ra,0x4(t0)
sll a0,a0,0x2
lw ra,0xa4(sp)
sw ra,0x8(t0)
lw ra,0xa8(sp)
sw ra,0xc(t0)
lw ra,0xac(sp)
sw ra,0x10(t0)
lw ra,0xb0(sp)
sw ra,0x14(t0)
lw ra,0xb4(sp)
sw ra,0x18(t0)
lw ra,0xb8(sp)
sw ra,0x1c(t0)
lw t0,0x7c(sp)
sw t9,0x4(v0)
sw t8,0x8(v0)
sw t0,0x0(v0)
sw t7,0xc(v0)
sw t6,0x10(v0)
sw t5,0x14(v0)
sw t4,0x18(v0)
sw t3,0x1c(v0)
lw t9,0x30(sp)
jalr t9
_addu a0,a2,a0
bne v0,zero,0x00049534
_lw gp,0x10(sp)
lw v1,0x2c(sp)
addiu s1,s1,0x1
lw v0,0xc(s4)
or a0,v1,zero
lw v1,0x20(sp)
lw t9,0x24(sp)
addu v0,v0,v1
jalr t9
_lw a1,0x0(v0)
beq v0,zero,0x000493ac
_lw gp,0x10(sp)
bne s6,zero,0x00049118
_addiu s2,s2,0x1
addiu s2,s2,-0x1
b 0x00049128
_or s3,s0,zero
lw v0,0x5c(s1)
slti v0,v0,0x2
bne v0,zero,0x000493fc
_or v0,s3,zero
lw a2,0x3c(s1)
addiu t5,sp,0x7c
lw a1,0x0(v0)
addiu v0,v0,0x4
lw a3,0x0(a2)
addiu a2,a2,0x4
or a1,a1,a3
bne t5,v0,0x000492f4
_sw a1,-0x4(v0)
lw v0,0x80(s1)
andi a1,v0,0x40
bne a1,zero,0x0004932c
_lw a1,0x5c(sp)
li a2,-0x401
and a1,a1,a2
sw a1,0x5c(sp)
andi v0,v0,0x80
beq v0,zero,0x00048fc0
_lw v0,0x5c(sp)
li a1,-0x2
and v0,v0,a1
b 0x00048fc0
_sw v0,0x5c(sp)
lw v0,0x5c(sp)
sw zero,0x4(s3)
sw zero,0x0(s3)
andi v0,v0,0x400
sw zero,0x8(s3)
sw zero,0xc(s3)
sw zero,0x10(s3)
sw zero,0x14(s3)
sw zero,0x18(s3)
beq v0,zero,0x00048c24
_sw zero,0x1c(s3)
li v0,0x400
sw v0,0x5c(sp)
andi v0,v1,0x80
beq v0,zero,0x00048fdc
_andi v0,v1,0x4
sw zero,0x0(s3)
sw zero,0x4(s3)
sw zero,0x8(s3)
sw zero,0xc(s3)
sw zero,0x10(s3)
sw zero,0x14(s3)
sw zero,0x18(s3)
b 0x00048c24
_sw zero,0x1c(s3)
sll v0,s1,0x1
or s3,s1,zero
sw v0,0x28(sp)
lw v0,0x28(sp)
addu s1,v0,s3
lw v0,0x18(sp)
sll s1,s1,0x2
or s0,v0,zero
addu s1,s1,v0
lw t9,-0x7984(gp)
addiu s0,s0,0xc
jalr t9
_lw a0,-0x4(s0)
bne s1,s0,0x000493d0
_lw gp,0x10(sp)
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x18(sp)
b 0x00048f5c
_lw gp,0x10(sp)
li v0,-0x1
sw v0,0x0(s3)
sw v0,0x4(s3)
sw v0,0x8(s3)
sw v0,0xc(s3)
sw v0,0x10(s3)
sw v0,0x14(s3)
sw v0,0x18(s3)
b 0x00049310
_sw v0,0x1c(s3)
addiu t5,sp,0x7c
or a1,zero,zero
or v1,s3,zero
addiu v1,v1,0x4
lw v0,0x0(a2)
lw a3,-0x4(v1)
addiu a2,a2,0x4
nor v0,zero,v0
and v0,v0,a3
sw v0,-0x4(v1)
bne v1,t5,0x00049430
_or a1,a1,v0
beq a1,zero,0x00048c24
_nop
b 0x000490bc
_nop
addiu t6,sp,0x7c
or a2,zero,zero
or v0,s3,zero
lw a1,0x0(v0)
addiu v0,v0,0x4
lw a3,0x0(t4)
addiu t4,t4,0x4
and a1,a1,a3
sw a1,-0x4(v0)
bne t6,v0,0x00049470
_or a2,a2,a1
bne a2,zero,0x0004904c
_nop
b 0x00048c28
_lw v0,0x1c(sp)
lw v0,0x4(s7)
andi v0,v0,0x200
beq v0,zero,0x00049388
_nop
lw v0,0x5c(s1)
slti v0,v0,0x2
beq v0,zero,0x00049000
_addiu t4,s1,0x60
b 0x00049468
_addiu t6,sp,0x7c
lw v0,0x80(s1)
sw a1,0x0(s3)
andi a2,v0,0x40
sw a1,0x4(s3)
sw a1,0x8(s3)
bne a2,zero,0x0004932c
_sw a1,0xc(s3)
b 0x00049320
_lw a1,0x5c(sp)
lw a2,0x0(s7)
addiu t5,sp,0x7c
or v0,s3,zero
lw a1,0x0(v0)
addiu v0,v0,0x4
lw a3,0x0(a2)
addiu a2,a2,0x4
or a1,a1,a3
bne t5,v0,0x000494f8
_sw a1,-0x4(v0)
b 0x00048fc0
_nop
lw v0,0x4(s7)
andi v0,v0,0x200
beq v0,zero,0x00049064
_nop
b 0x0004938c
_sw zero,0x0(s3)
b 0x000493b8
_or s3,s1,zero
lw t9,0x24(sp)
li a3,0x1
or a2,s6,zero
or a1,s1,zero
jalr t9
_or a0,s7,zero
lw v1,0x2c(sp)
lw gp,0x10(sp)
addu v1,v1,s4
beq v0,zero,0x000497a4
_sw v0,0x0(v1)
lw v1,0x0(s8)
beq v0,v1,0x00049588
_li v1,0x1
lw v0,0x5c(s1)
lw a0,0x40(sp)
slti v0,v0,0x2
movz a0,v1,v0
sw a0,0x40(sp)
lw t9,0x24(sp)
li a3,0x2
or a2,s6,zero
or a1,s1,zero
jalr t9
_or a0,s7,zero
lw v1,0x38(sp)
lw gp,0x10(sp)
addu v1,v1,s4
bne v0,zero,0x00048dec
_sw v0,0x0(v1)
lw v0,0x4c(sp)
beq v0,zero,0x00048dec
_nop
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x20(sp)
lw gp,0x10(sp)
lw s0,0x58(sp)
lw t9,-0x7984(gp)
jalr t9
_or a0,s0,zero
lw v0,0x28(sp)
lw gp,0x10(sp)
addu s1,v0,s3
lw v0,0x18(sp)
sll s1,s1,0x2
or s0,v0,zero
addu s1,s1,v0
lw t9,-0x7984(gp)
addiu s0,s0,0xc
jalr t9
_lw a0,-0x4(s0)
bne s0,s1,0x000495fc
_lw gp,0x10(sp)
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x18(sp)
b 0x00048f5c
_lw gp,0x10(sp)
sll v0,s3,0x1
b 0x000495d4
_sw v0,0x28(sp)
lw a2,0x5c(sp)
lw v1,0xc(s4)
or a0,v0,zero
sw v0,0x28(sp)
addu s5,a0,s2
lw a0,0x34(sp)
sll v0,s2,0x5
lw t9,-0x7a54(gp)
sll s5,s5,0x2
addu v0,a0,v0
lw a0,0x20(sp)
sw a2,0x0(v0)
addu a1,v1,a0
lw a2,0x60(sp)
li a0,0x4
lw v1,0x18(sp)
sw a2,0x4(v0)
lw a2,0x64(sp)
addu s5,v1,s5
li v1,0x1
sw a2,0x8(v0)
lw a2,0x68(sp)
sw a2,0xc(v0)
lw a2,0x6c(sp)
sw a2,0x10(v0)
lw a2,0x70(sp)
sw a2,0x14(v0)
lw a2,0x74(sp)
sw a2,0x18(v0)
lw a2,0x78(sp)
sw a2,0x1c(v0)
lw s0,0x0(a1)
sw v1,0x0(s5)
jalr t9
_sw v1,0x4(s5)
lw gp,0x10(sp)
beq v0,zero,0x00048f3c
_sw v0,0x8(s5)
lw a0,0x8(s4)
addiu s2,s2,0x1
sw s0,0x0(v0)
sw zero,0x0(s3)
sw zero,0x4(s3)
sw zero,0x8(s3)
sw zero,0xc(s3)
sw zero,0x10(s3)
sw zero,0x14(s3)
sw zero,0x18(s3)
b 0x00048c24
_sw zero,0x1c(s3)
lw v1,0x4c(sp)
beq v1,zero,0x00048dc8
_lw t9,-0x7984(gp)
b 0x000495c4
_nop
lw a0,0xc00(t3)
and a0,a1,a0
bne a0,zero,0x0004973c
_or t1,zero,zero
or a2,t3,zero
lw a0,0xc20(a2)
addiu t1,t1,0x1
and a0,a1,a0
beq a0,zero,0x00049724
_addiu a2,a2,0x20
sll t1,t1,0x2
lw a0,0x0(t0)
and a0,a1,a0
beq a0,zero,0x00049760
_sll a0,a3,0x2
addu t1,t6,t1
lw a2,0x0(t1)
addu a0,v0,a0
b 0x00048e88
_sw a2,0x0(a0)
addu t1,t5,t1
lw a2,0x0(t1)
addu a0,v0,a0
b 0x00048e88
_sw a2,0x0(a0)
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x18(sp)
lw gp,0x10(sp)
lw t9,-0x7bb8(gp)
li a1,0x100
jalr t9
_li a0,0x4
lw gp,0x10(sp)
sw v0,0x2c(s2)
b 0x00048f60
_sltu v0,zero,v0
lw v1,0x4c(sp)
beq v1,zero,0x00049568
_lw t9,-0x7984(gp)
b 0x000495c4
_nop
lw a0,0x38(sp)
sll v1,a1,0x2
addu v1,a0,v1
lw a0,0x40(sp)
lw v1,0x0(v1)
beq a0,zero,0x00048ee0
_sw v1,0x28(v0)
b 0x00048ee0
_sw v1,0x428(v0)
li a1,0x200
jalr t9
_li a0,0x4
lw gp,0x10(sp)
beq v0,zero,0x000495c0
_sw v0,0x30(s2)
lw t1,0x18(sp)
addiu t3,v0,0x400
lw t4,0x20(sp)
or t2,v0,zero
lw t5,0x2c(sp)
lw v1,0x0(s8)
beq v1,zero,0x00049838
_nop
li a1,0x1
or a3,t2,zero
andi a0,v1,0x1
bne a0,zero,0x00049850
_nop
srl v1,v1,0x1
sll a1,a1,0x1
bne v1,zero,0x0004981c
_addiu a3,a3,0x4
addiu t2,t2,0x80
addiu s8,s8,0x4
bne t3,t2,0x00049808
_addiu t1,t1,0x4
b 0x00048eb0
_lw v1,0x9c(sp)
lw a0,0xc00(t1)
and a0,a1,a0
bne a0,zero,0x00049898
_or t0,zero,zero
or a2,t1,zero
lw a0,0xc20(a2)
addiu t0,t0,0x1
and a0,a1,a0
beq a0,zero,0x00049864
_addiu a2,a2,0x20
sll a0,t0,0x2
addu a2,t4,a0
addu a0,t5,a0
lw a2,0x0(a2)
sw a2,0x0(a3)
lw a0,0x0(a0)
b 0x00049828
_sw a0,0x400(a3)
or a0,t5,zero
b 0x00049884
_or a2,t4,zero
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x18(sp)
beq s3,zero,0x00049784
_lw gp,0x10(sp)
b 0x00048f60
_or v0,zero,zero
lw t9,-0x79d8(gp)
jalr t9
_nop
lui gp,0x3
addiu gp,gp,0x3cb4
addu gp,gp,t9
lbu a2,0x18(a1)
li v1,0x10
bne a2,v1,0x00049900
_or v0,zero,zero
lw v1,0x4(a1)
lw a0,0xc(v1)
lw v1,0x1c(v1)
sw a0,0xc(a1)
jr ra
_sw v1,0x1c(a1)
addiu sp,sp,-0x28
lw t9,-0x7c60(gp)
sw s0,0x1c(sp)
or s0,a1,zero
sw gp,0x10(sp)
addiu t9,t9,0x45c0
sw s1,0x20(sp)
or s1,a0,zero
sw ra,0x24(sp)
lw a1,0x14(a1)
lw a2,0x18(s0)
bal 0x000445c0
_sw s0,0xc(s0)
li v1,-0x1
beq v0,v1,0x00049998
_sw v0,0x1c(s0)
lbu a0,0x18(s0)
li v1,0xc
beq a0,v1,0x00049968
_sll v1,v0,0x3
or v0,zero,zero
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
lw a0,0x0(s1)
lw a1,0x14(s0)
or v0,zero,zero
addu v1,a0,v1
lw a0,0x4(v1)
ins a0,a1,0xe,0xa
sw a0,0x4(v1)
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
b 0x00049954
_li v0,0xc
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nuint FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}\n\n" comment (function_definition "uint FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" type_identifier (function_declarator "FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)" identifier (parameter_list "(int *param_1,uint *******param_2,int param_3,uint *******param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *******param_2" type_identifier (pointer_declarator "*******param_2" * (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))))))) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint *******param_4" type_identifier (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint *******pppppppuVar3;" type_identifier (pointer_declarator "*******pppppppuVar3" * (pointer_declarator "******pppppppuVar3" * (pointer_declarator "*****pppppppuVar3" * (pointer_declarator "****pppppppuVar3" * (pointer_declarator "***pppppppuVar3" * (pointer_declarator "**pppppppuVar3" * (pointer_declarator "*pppppppuVar3" * identifier))))))) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int **ppiVar9;" primitive_type (pointer_declarator "**ppiVar9" * (pointer_declarator "*ppiVar9" * identifier)) ;) (declaration "int **ppiVar10;" primitive_type (pointer_declarator "**ppiVar10" * (pointer_declarator "*ppiVar10" * identifier)) ;) (declaration "uint ******ppppppuVar11;" type_identifier (pointer_declarator "******ppppppuVar11" * (pointer_declarator "*****ppppppuVar11" * (pointer_declarator "****ppppppuVar11" * (pointer_declarator "***ppppppuVar11" * (pointer_declarator "**ppppppuVar11" * (pointer_declarator "*ppppppuVar11" * identifier)))))) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint *******pppppppuVar14;" type_identifier (pointer_declarator "*******pppppppuVar14" * (pointer_declarator "******pppppppuVar14" * (pointer_declarator "*****pppppppuVar14" * (pointer_declarator "****pppppppuVar14" * (pointer_declarator "***pppppppuVar14" * (pointer_declarator "**pppppppuVar14" * (pointer_declarator "*pppppppuVar14" * identifier))))))) ;) (declaration "uint *******pppppppuVar15;" type_identifier (pointer_declarator "*******pppppppuVar15" * (pointer_declarator "******pppppppuVar15" * (pointer_declarator "*****pppppppuVar15" * (pointer_declarator "****pppppppuVar15" * (pointer_declarator "***pppppppuVar15" * (pointer_declarator "**pppppppuVar15" * (pointer_declarator "*pppppppuVar15" * identifier))))))) ;) (declaration "uint *****pppppuVar16;" type_identifier (pointer_declarator "*****pppppuVar16" * (pointer_declarator "****pppppuVar16" * (pointer_declarator "***pppppuVar16" * (pointer_declarator "**pppppuVar16" * (pointer_declarator "*pppppuVar16" * identifier))))) ;) (declaration "uint *******pppppppuVar17;" type_identifier (pointer_declarator "*******pppppppuVar17" * (pointer_declarator "******pppppppuVar17" * (pointer_declarator "*****pppppppuVar17" * (pointer_declarator "****pppppppuVar17" * (pointer_declarator "***pppppppuVar17" * (pointer_declarator "**pppppppuVar17" * (pointer_declarator "*pppppppuVar17" * identifier))))))) ;) (declaration "uint ******ppppppuVar18;" type_identifier (pointer_declarator "******ppppppuVar18" * (pointer_declarator "*****ppppppuVar18" * (pointer_declarator "****ppppppuVar18" * (pointer_declarator "***ppppppuVar18" * (pointer_declarator "**ppppppuVar18" * (pointer_declarator "*ppppppuVar18" * identifier)))))) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint *******pppppppuVar20;" type_identifier (pointer_declarator "*******pppppppuVar20" * (pointer_declarator "******pppppppuVar20" * (pointer_declarator "*****pppppppuVar20" * (pointer_declarator "****pppppppuVar20" * (pointer_declarator "***pppppppuVar20" * (pointer_declarator "**pppppppuVar20" * (pointer_declarator "*pppppppuVar20" * identifier))))))) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint ****ppppuVar24;" type_identifier (pointer_declarator "****ppppuVar24" * (pointer_declarator "***ppppuVar24" * (pointer_declarator "**ppppuVar24" * (pointer_declarator "*ppppuVar24" * identifier)))) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint ******ppppppuVar26;" type_identifier (pointer_declarator "******ppppppuVar26" * (pointer_declarator "*****ppppppuVar26" * (pointer_declarator "****ppppppuVar26" * (pointer_declarator "***ppppppuVar26" * (pointer_declarator "**ppppppuVar26" * (pointer_declarator "*ppppppuVar26" * identifier)))))) ;) (declaration "uint *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int **ppiVar30;" primitive_type (pointer_declarator "**ppiVar30" * (pointer_declarator "*ppiVar30" * identifier)) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined4 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int *piVar33;" primitive_type (pointer_declarator "*piVar33" * identifier) ;) (declaration "uint *******pppppppuVar34;" type_identifier (pointer_declarator "*******pppppppuVar34" * (pointer_declarator "******pppppppuVar34" * (pointer_declarator "*****pppppppuVar34" * (pointer_declarator "****pppppppuVar34" * (pointer_declarator "***pppppppuVar34" * (pointer_declarator "**pppppppuVar34" * (pointer_declarator "*pppppppuVar34" * identifier))))))) ;) (declaration "uint ******ppppppuVar35;" type_identifier (pointer_declarator "******ppppppuVar35" * (pointer_declarator "*****ppppppuVar35" * (pointer_declarator "****ppppppuVar35" * (pointer_declarator "***ppppppuVar35" * (pointer_declarator "**ppppppuVar35" * (pointer_declarator "*ppppppuVar35" * identifier)))))) ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "uint *******unaff_s2;" type_identifier (pointer_declarator "*******unaff_s2" * (pointer_declarator "******unaff_s2" * (pointer_declarator "*****unaff_s2" * (pointer_declarator "****unaff_s2" * (pointer_declarator "***unaff_s2" * (pointer_declarator "**unaff_s2" * (pointer_declarator "*unaff_s2" * identifier))))))) ;) (declaration "uint *******pppppppuVar37;" type_identifier (pointer_declarator "*******pppppppuVar37" * (pointer_declarator "******pppppppuVar37" * (pointer_declarator "*****pppppppuVar37" * (pointer_declarator "****pppppppuVar37" * (pointer_declarator "***pppppppuVar37" * (pointer_declarator "**pppppppuVar37" * (pointer_declarator "*pppppppuVar37" * identifier))))))) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "undefined *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "uint *******unaff_s5;" type_identifier (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "undefined *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 uVar41;" type_identifier identifier ;) (declaration "int local_124;" primitive_type identifier ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "int local_f4;" primitive_type identifier ;) (declaration "undefined1 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "uint *******local_e4;" type_identifier (pointer_declarator "*******local_e4" * (pointer_declarator "******local_e4" * (pointer_declarator "*****local_e4" * (pointer_declarator "****local_e4" * (pointer_declarator "***local_e4" * (pointer_declarator "**local_e4" * (pointer_declarator "*local_e4" * identifier))))))) ;) (declaration "uint local_e0;" type_identifier identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "uint local_d8;" type_identifier identifier ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "uint local_d0;" type_identifier identifier ;) (declaration "uint local_cc;" type_identifier identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint ******local_c4;" type_identifier (pointer_declarator "******local_c4" * (pointer_declarator "*****local_c4" * (pointer_declarator "****local_c4" * (pointer_declarator "***local_c4" * (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)))))) ;) (declaration "uint local_c0;" type_identifier identifier ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "uint local_b4;" type_identifier identifier ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "int *local_a4;" primitive_type (pointer_declarator "*local_a4" * identifier) ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "uint local_9c;" type_identifier identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *******local_78;" type_identifier (pointer_declarator "*******local_78" * (pointer_declarator "******local_78" * (pointer_declarator "*****local_78" * (pointer_declarator "****local_78" * (pointer_declarator "***local_78" * (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier))))))) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint *******local_6c;" type_identifier (pointer_declarator "*******local_6c" * (pointer_declarator "******local_6c" * (pointer_declarator "*****local_6c" * (pointer_declarator "****local_6c" * (pointer_declarator "***local_6c" * (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier))))))) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "int *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "uint ******local_30;" type_identifier (pointer_declarator "******local_30" * (pointer_declarator "*****local_30" * (pointer_declarator "****local_30" * (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)))))) ;) (declaration "uint *******local_2c;" type_identifier (pointer_declarator "*******local_2c" * (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier))))))) ;) (expression_statement "puVar39 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar39 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (uint ******)0x0;" (assignment_expression "local_30 = (uint ******)0x0" identifier = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "iVar36 = param_1[7] + (int)param_2 * 0xc;" (assignment_expression "iVar36 = param_1[7] + (int)param_2 * 0xc" identifier = (binary_expression "param_1[7] + (int)param_2 * 0xc" (subscript_expression "param_1[7]" identifier [ number_literal ]) + (binary_expression "(int)param_2 * 0xc" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(uint ********)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(uint ********)PTR___stack_chk_guard_00075be8" * (cast_expression "(uint ********)PTR___stack_chk_guard_00075be8" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" identifier = (pointer_expression "*(int *)(iVar36 + 4)" * (cast_expression "(int *)(iVar36 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 4)" ( (binary_expression "iVar36 + 4" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar20 = param_2;" (assignment_expression "pppppppuVar20 = param_2" identifier = identifier) ;) (expression_statement "puVar38 = PTR_LAB_00075920;" (assignment_expression "puVar38 = PTR_LAB_00075920" identifier = identifier) ;) (if_statement "if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }" { (expression_statement "unaff_s7 = &local_38;" (assignment_expression "unaff_s7 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = (uint *******)(iVar36 + 8);" (assignment_expression "unaff_s5 = (uint *******)(iVar36 + 8)" identifier = (cast_expression "(uint *******)(iVar36 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ;) (expression_statement "puVar38 = PTR_LAB_00075920 + 0x5230;" (assignment_expression "puVar38 = PTR_LAB_00075920 + 0x5230" identifier = (binary_expression "PTR_LAB_00075920 + 0x5230" identifier + number_literal)) ;) (expression_statement "unaff_s6 = PTR_LAB_00075920 + 0x6140;" (assignment_expression "unaff_s6 = PTR_LAB_00075920 + 0x6140" identifier = (binary_expression "PTR_LAB_00075920 + 0x6140" identifier + number_literal)) ;) (do_statement "do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);" do (compound_statement "{\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    }" { (expression_statement "pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);" (assignment_expression "pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" identifier = (pointer_expression "*(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" * (cast_expression "(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(*(int *)(iVar36 + 8) + unaff_s0 * 4)" ( (binary_expression "*(int *)(iVar36 + 8) + unaff_s0 * 4" (pointer_expression "*(int *)(iVar36 + 8)" * (cast_expression "(int *)(iVar36 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) + (binary_expression "unaff_s0 * 4" identifier * number_literal)) ))))) ;) (if_statement "if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))" ( (binary_expression "(param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0)" (parenthesized_expression "(param_2 != pppppppuVar3)" ( (binary_expression "param_2 != pppppppuVar3" identifier != identifier) )) && (parenthesized_expression "((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0)" ( (binary_expression "(*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0" (parenthesized_expression "(*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8)" ( (binary_expression "*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8" (pointer_expression "*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4)" * (cast_expression "(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (int)pppppppuVar3 * 8 + 4)" ( (binary_expression "*param_1 + (int)pppppppuVar3 * 8 + 4" (binary_expression "*param_1 + (int)pppppppuVar3 * 8" (pointer_expression "*param_1" * identifier) + (binary_expression "(int)pppppppuVar3 * 8" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" { (expression_statement "iVar28 = (int)pppppppuVar3 * 0xc;" (assignment_expression "iVar28 = (int)pppppppuVar3 * 0xc" identifier = (binary_expression "(int)pppppppuVar3 * 0xc" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar31 = param_1[5] + iVar28;" (assignment_expression "iVar31 = param_1[5] + iVar28" identifier = (binary_expression "param_1[5] + iVar28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "puVar32 = *(undefined4 **)(iVar31 + 8);" (assignment_expression "puVar32 = *(undefined4 **)(iVar31 + 8)" identifier = (pointer_expression "*(undefined4 **)(iVar31 + 8)" * (cast_expression "(undefined4 **)(iVar31 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 8)" ( (binary_expression "iVar31 + 8" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar20 = unaff_s5;" (assignment_expression "pppppppuVar20 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);" (assignment_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32)" identifier = (call_expression "FUN_00045230(iVar25,unaff_s5,*puVar32)" identifier (argument_list "(iVar25,unaff_s5,*puVar32)" ( identifier , identifier , (pointer_expression "*puVar32" * identifier) )))) ;) (if_statement "if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar31 + 4) < 2)" ( (binary_expression "*(int *)(iVar31 + 4) < 2" (pointer_expression "*(int *)(iVar31 + 4)" * (cast_expression "(int *)(iVar31 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 4)" ( (binary_expression "iVar31 + 4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }" { (if_statement "if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }" { (expression_statement "pppppppuVar20 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar20 = (uint *******)(param_3 + 8)" identifier = (cast_expression "(uint *******)(param_3 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier = (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier (argument_list "(*(undefined4 *)(param_3 + 4))" ( (pointer_expression "*(undefined4 *)(param_3 + 4)" * (cast_expression "(undefined4 *)(param_3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 != 0) goto LAB_000488c0;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000488c0;" goto statement_identifier ;)) })) }) (else_clause "else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" else (if_statement "if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" if (parenthesized_expression "((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0))" ( (binary_expression "(iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8)" identifier = (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8)" identifier (argument_list "(*(undefined4 *)(param_3 + 4),param_3 + 8)" ( (pointer_expression "*(undefined4 *)(param_3 + 4)" * (cast_expression "(undefined4 *)(param_3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) , (binary_expression "param_3 + 8" identifier + number_literal) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }" { (labeled_statement "LAB_000488c0:\n          iVar25 = param_1[7];" statement_identifier : (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_000488c4:\n          pppppppuVar20 = param_4;" statement_identifier : (expression_statement "pppppppuVar20 = param_4;" (assignment_expression "pppppppuVar20 = param_4" identifier = identifier) ;)) (expression_statement "uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);" (assignment_expression "uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28)" identifier = (call_expression "FUN_00046140(unaff_s7,param_4,iVar25 + iVar28)" identifier (argument_list "(unaff_s7,param_4,iVar25 + iVar28)" ( identifier , identifier , (binary_expression "iVar25 + iVar28" identifier + identifier) )))) ;) (if_statement "if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }" { (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (goto_statement "goto LAB_00048a80;" goto statement_identifier ;) })) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" identifier = (pointer_expression "*(int *)(iVar36 + 4)" * (cast_expression "(int *)(iVar36 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 4)" ( (binary_expression "iVar36 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" else (compound_statement "{\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" { (expression_statement "pppppppuVar20 = unaff_s5;" (assignment_expression "pppppppuVar20 = unaff_s5" identifier = identifier) ;) (if_statement "if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }" if (parenthesized_expression "((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0))" ( (binary_expression "(0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)" (parenthesized_expression "(0 < (int)puVar32[1])" ( (binary_expression "0 < (int)puVar32[1]" number_literal < (cast_expression "(int)puVar32[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar32[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)" ( (comma_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0" (assignment_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1])" identifier = (call_expression "FUN_00045230(iVar25,unaff_s5,puVar32[1])" identifier (argument_list "(iVar25,unaff_s5,puVar32[1])" ( identifier , identifier , (subscript_expression "puVar32[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }" { (expression_statement "pppppppuVar20 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar20 = (uint *******)(param_3 + 8)" identifier = (cast_expression "(uint *******)(param_3 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier = (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier (argument_list "(*(undefined4 *)(param_3 + 4))" ( (pointer_expression "*(undefined4 *)(param_3 + 4)" * (cast_expression "(undefined4 *)(param_3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }" { (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000488c4;" goto statement_identifier ;) })) })) }))))) })) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s0 < iVar25)" ( (binary_expression "unaff_s0 < iVar25" identifier < identifier) )) ;) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) (expression_statement "unaff_s3 = param_3;" (assignment_expression "unaff_s3 = param_3" identifier = identifier) ;) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" identifier = identifier) ;) (if_statement "if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar28 = param_3 + 4;" (assignment_expression "iVar28 = param_3 + 4" identifier = (binary_expression "param_3 + 4" identifier + number_literal)) ;) (expression_statement "pppppppuVar3 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar3 = (uint *******)(param_3 + 8)" identifier = (cast_expression "(uint *******)(param_3 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) ;) (expression_statement "pppppppuVar17 = &local_30;" (assignment_expression "pppppppuVar17 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (do_statement "do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);" do (compound_statement "{\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      }" { (expression_statement "pppppppuVar37 = pppppppuVar17;" (assignment_expression "pppppppuVar37 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));" (assignment_expression "iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" identifier = (call_expression "FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" identifier (argument_list "(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar36 + 8) + iVar4 * 4)" ( (binary_expression "*(int *)(iVar36 + 8) + iVar4 * 4" (pointer_expression "*(int *)(iVar36 + 8)" * (cast_expression "(int *)(iVar36 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) )))) ;) (expression_statement "pppppppuVar20 = pppppppuVar17;" (assignment_expression "pppppppuVar20 = pppppppuVar17" identifier = identifier) ;) (if_statement "if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }" { (expression_statement "iVar29 = *(int *)(param_3 + 4);" (assignment_expression "iVar29 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar17 = pppppppuVar3;" (assignment_expression "pppppppuVar17 = pppppppuVar3" identifier = identifier) ;) (expression_statement "iVar31 = FUN_00045230(iVar29);" (assignment_expression "iVar31 = FUN_00045230(iVar29)" identifier = (call_expression "FUN_00045230(iVar29)" identifier (argument_list "(iVar29)" ( identifier )))) ;) (expression_statement "pppppppuVar20 = pppppppuVar3;" (assignment_expression "pppppppuVar20 = pppppppuVar3" identifier = identifier) ;) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (if_statement "if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }" if (parenthesized_expression "((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29))" ( (binary_expression "(-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)" (parenthesized_expression "(-1 < iVar31 + -1)" ( (binary_expression "-1 < iVar31 + -1" number_literal < (binary_expression "iVar31 + -1" identifier + number_literal)) )) && (parenthesized_expression "(iVar31 + -1 < iVar29)" ( (binary_expression "iVar31 + -1 < iVar29" (binary_expression "iVar31 + -1" identifier + number_literal) < identifier) ))) )) (compound_statement "{\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }" { (expression_statement "*(int *)(param_3 + 4) = iVar29 + -1;" (assignment_expression "*(int *)(param_3 + 4) = iVar29 + -1" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) = (binary_expression "iVar29 + -1" identifier + number_literal)) ;) (expression_statement "FUN_00045494(iVar28);" (call_expression "FUN_00045494(iVar28)" identifier (argument_list "(iVar28)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" identifier = (pointer_expression "*(int *)(iVar36 + 4)" * (cast_expression "(int *)(iVar36 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 4)" ( (binary_expression "iVar36 + 4" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar20 = pppppppuVar17;" (assignment_expression "pppppppuVar20 = pppppppuVar17" identifier = identifier) ;) })) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar17 = pppppppuVar37;" (assignment_expression "pppppppuVar17 = pppppppuVar37" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 < iVar25)" ( (binary_expression "iVar4 < iVar25" identifier < identifier) )) ;) })) })) (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "param_2 = unaff_s2;" (assignment_expression "param_2 = unaff_s2" identifier = identifier) ;) (expression_statement "param_3 = unaff_s3;" (assignment_expression "param_3 = unaff_s3" identifier = identifier) ;) (expression_statement "param_1 = unaff_s8;" (assignment_expression "param_1 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }" if (parenthesized_expression "(local_2c == *(uint ********)puVar39)" ( (binary_expression "local_2c == *(uint ********)puVar39" identifier == (pointer_expression "*(uint ********)puVar39" * (cast_expression "(uint ********)puVar39" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "uVar41 = 0x48af0;" (assignment_expression "uVar41 = 0x48af0" identifier = number_literal) ;) (expression_statement "pppppppuVar17 = local_2c;" (assignment_expression "pppppppuVar17 = local_2c" identifier = identifier) ;) (expression_statement "puVar39 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar39 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar39 + 0x2d0f8);" (assignment_expression "piVar6 = *(int **)(puVar39 + 0x2d0f8)" identifier = (pointer_expression "*(int **)(puVar39 + 0x2d0f8)" * (cast_expression "(int **)(puVar39 + 0x2d0f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d0f8)" ( (binary_expression "puVar39 + 0x2d0f8" identifier + number_literal) ))))) ;) (expression_statement "local_84 = (int *)*piVar6;" (assignment_expression "local_84 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "pppppppuVar3 = pppppppuVar20;" (assignment_expression "pppppppuVar3 = pppppppuVar20" identifier = identifier) ;) (expression_statement "local_80 = unaff_s0;" (assignment_expression "local_80 = unaff_s0" identifier = identifier) ;) (expression_statement "local_7c = iVar36;" (assignment_expression "local_7c = iVar36" identifier = identifier) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_74 = param_3;" (assignment_expression "local_74 = param_3" identifier = identifier) ;) (expression_statement "local_70 = puVar38;" (assignment_expression "local_70 = puVar38" identifier = identifier) ;) (expression_statement "local_6c = unaff_s5;" (assignment_expression "local_6c = unaff_s5" identifier = identifier) ;) (expression_statement "local_68 = unaff_s6;" (assignment_expression "local_68 = unaff_s6" identifier = identifier) ;) (expression_statement "local_64 = unaff_s7;" (assignment_expression "local_64 = unaff_s7" identifier = identifier) ;) (expression_statement "local_60 = param_1;" (assignment_expression "local_60 = param_1" identifier = identifier) ;) (expression_statement "local_5c = uVar41;" (assignment_expression "local_5c = uVar41" identifier = identifier) ;) (expression_statement "iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);" (assignment_expression "iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00)" identifier = (call_expression "(**(code **)(puVar39 + 0x2d03c))(0x2c00)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d03c)" * (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "(0x2c00)" ( number_literal )))) ;) (if_statement "if (iVar25 == 0) goto LAB_00048f5c;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00048f5c;" goto statement_identifier ;)) (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" identifier = (subscript_expression "pppppppuVar20[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar20[0xb] = (uint ******)0x0;" (assignment_expression "pppppppuVar20[0xb] = (uint ******)0x0" (subscript_expression "pppppppuVar20[0xb]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar7 = (uint *)(iVar25 + 0xc00);" (assignment_expression "puVar7 = (uint *)(iVar25 + 0xc00)" identifier = (cast_expression "(uint *)(iVar25 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc00)" ( (binary_expression "iVar25 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "pppppppuVar20[0xc] = (uint ******)0x0;" (assignment_expression "pppppppuVar20[0xc] = (uint ******)0x0" (subscript_expression "pppppppuVar20[0xc]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" if (parenthesized_expression "(0 < (int)ppppppuVar18)" ( (binary_expression "0 < (int)ppppppuVar18" number_literal < (cast_expression "(int)ppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" { (expression_statement "iVar36 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar36 = *(int *)(puVar39 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "local_124 = 0;" (assignment_expression "local_124 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar4 = *(int *)(puVar39 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar37 = (uint *******)0x0;" (assignment_expression "pppppppuVar37 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;" statement_identifier : (expression_statement "ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;" (assignment_expression "ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2" identifier = (binary_expression "*pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2" (pointer_expression "*pppppppuVar17" * identifier) + (binary_expression "(int)pppppppuVar20[3][local_124] * 2" (cast_expression "(int)pppppppuVar20[3][local_124]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar20[3][local_124]" (subscript_expression "pppppppuVar20[3]" identifier [ number_literal ]) [ identifier ])) * number_literal))) ;)) (expression_statement "bVar1 = *(byte *)(ppppppuVar35 + 1);" (assignment_expression "bVar1 = *(byte *)(ppppppuVar35 + 1)" identifier = (pointer_expression "*(byte *)(ppppppuVar35 + 1)" * (cast_expression "(byte *)(ppppppuVar35 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppuVar35 + 1)" ( (binary_expression "ppppppuVar35 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;" (assignment_expression "uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16" identifier = (binary_expression "(uint)((int)ppppppuVar35[1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppuVar35[1] << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppuVar35[1] << 8)" ( (binary_expression "(int)ppppppuVar35[1] << 8" (cast_expression "(int)ppppppuVar35[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar35[1]" identifier [ number_literal ])) << number_literal) ))) >> number_literal)) ;) (if_statement "if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }" { (expression_statement "pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));" (assignment_expression "pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" identifier = (cast_expression "(uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" ( (binary_expression "&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5)" (pointer_expression "&local_e4" & identifier) + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar35 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar35 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar35" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )))) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" ( (binary_expression "(uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f)" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (binary_expression "1 << (*(byte *)ppppppuVar35 & 0x1f)" number_literal << (parenthesized_expression "(*(byte *)ppppppuVar35 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar35 & 0x1f" (pointer_expression "*(byte *)ppppppuVar35" * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )))) )))) ;) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" * identifier) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_00048fc0:\n      pppppppuVar34 = local_e4;" statement_identifier : (expression_statement "pppppppuVar34 = local_e4;" (assignment_expression "pppppppuVar34 = local_e4" identifier = identifier) ;)) (if_statement "if (uVar5 == 0) goto LAB_000490bc;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000490bc;" goto statement_identifier ;)) (if_statement "if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" if (parenthesized_expression "((uVar5 & 0x20) == 0)" ( (binary_expression "(uVar5 & 0x20) == 0" (parenthesized_expression "(uVar5 & 0x20)" ( (binary_expression "uVar5 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }" { (if_statement "if ((uVar5 & 0x80) != 0) goto LAB_00049388;" if (parenthesized_expression "((uVar5 & 0x80) != 0)" ( (binary_expression "(uVar5 & 0x80) != 0" (parenthesized_expression "(uVar5 & 0x80)" ( (binary_expression "uVar5 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00049388;" goto statement_identifier ;)) (labeled_statement "LAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" statement_identifier : (if_statement "if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" if (parenthesized_expression "((uVar5 & 4) != 0)" ( (binary_expression "(uVar5 & 4) != 0" (parenthesized_expression "(uVar5 & 4)" ( (binary_expression "uVar5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" { (if_statement "if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" { (if_statement "if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;" if (parenthesized_expression "(((uint)ppppppuVar35[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar35[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar35[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar35[1] & 0x200" (cast_expression "(uint)ppppppuVar35[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar35[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00049388;" goto statement_identifier ;)) (expression_statement "ppppppuVar11 = pppppppuVar17[0x17];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x17]" identifier = (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" else (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0x17];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x17]" identifier = (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) ;) }))) (if_statement "if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" if (parenthesized_expression "((int)ppppppuVar11 < 2)" ( (binary_expression "(int)ppppppuVar11 < 2" (cast_expression "(int)ppppppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" { (expression_statement "pppppppuVar15 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar15 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);" do (compound_statement "{\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            }" { (expression_statement "pppppppuVar14 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar11 = *pppppppuVar15;" (assignment_expression "ppppppuVar11 = *pppppppuVar15" identifier = (pointer_expression "*pppppppuVar15" * identifier)) ;) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar34 & (uint)ppppppuVar11)" ( (binary_expression "(uint)*pppppppuVar34 & (uint)ppppppuVar11" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier) & (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" * identifier) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "uVar21 = uVar21 | (uint)pppppppuVar3;" (assignment_expression "uVar21 = uVar21 | (uint)pppppppuVar3" identifier = (binary_expression "uVar21 | (uint)pppppppuVar3" identifier | (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar34 = pppppppuVar14;" (assignment_expression "pppppppuVar34 = pppppppuVar14" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar14)" ( (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" else (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" identifier = (subscript_expression "pppppppuVar17[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar15 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar15 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);" do (compound_statement "{\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            }" { (expression_statement "pppppppuVar3 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar3 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" identifier = (pointer_expression "*ppppppuVar11" * identifier)) ;) (expression_statement "ppppppuVar26 = *pppppppuVar15;" (assignment_expression "ppppppuVar26 = *pppppppuVar15" identifier = (pointer_expression "*pppppppuVar15" * identifier)) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);" (assignment_expression "ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" identifier = (cast_expression "(uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" ( (binary_expression "(~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34" (parenthesized_expression "(~(uint)pppppuVar16 | (uint)ppppppuVar26)" ( (binary_expression "~(uint)pppppuVar16 | (uint)ppppppuVar26" (unary_expression "~(uint)pppppuVar16" ~ (cast_expression "(uint)pppppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) | (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar34 = ppppppuVar26;" (assignment_expression "*pppppppuVar34 = ppppppuVar26" (pointer_expression "*pppppppuVar34" * identifier) = identifier) ;) (expression_statement "uVar21 = uVar21 | (uint)ppppppuVar26;" (assignment_expression "uVar21 = uVar21 | (uint)ppppppuVar26" identifier = (binary_expression "uVar21 | (uint)ppppppuVar26" identifier | (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar34 = pppppppuVar3;" (assignment_expression "pppppppuVar34 = pppppppuVar3" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar3)" ( (binary_expression "&local_c4 != pppppppuVar3" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }))) (if_statement "if (uVar21 == 0) goto LAB_00048c28;" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) }))) (if_statement "if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }" if (parenthesized_expression "((uVar5 & 8) == 0)" ( (binary_expression "(uVar5 & 8) == 0" (parenthesized_expression "(uVar5 & 8)" ( (binary_expression "uVar5 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }" { (labeled_statement "LAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar34 = (uint *******)0x0;" (assignment_expression "pppppppuVar34 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (if_statement "if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }" if (parenthesized_expression "(0 < (int)pppppppuVar37)" ( (binary_expression "0 < (int)pppppppuVar37" number_literal < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }" { (expression_statement "pppppppuVar34 = (uint *******)0x0;" (assignment_expression "pppppppuVar34 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" identifier = identifier) ;) (do_statement "do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);" do (compound_statement "{\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            }" { (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20)" identifier = (cast_expression "(uint *******)((int)pppppppuVar34 * 0x20)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar34 * 0x20)" ( (binary_expression "(int)pppppppuVar34 * 0x20" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }" if (parenthesized_expression "((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0))" ( (binary_expression "(bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "(((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)" ( (binary_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0" (parenthesized_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1)" ( (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1" (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f)" (subscript_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8]" (parenthesized_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" ( (binary_expression "puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5)" identifier + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar35 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar35 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar35" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )) [ (binary_expression "(int)pppppppuVar34 * 8" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) >> (parenthesized_expression "(*(byte *)ppppppuVar35 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar35 & 0x1f" (pointer_expression "*(byte *)ppppppuVar35" * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (expression_statement "pppppppuVar15 = &local_c4;" (assignment_expression "pppppppuVar15 = &local_c4" identifier = (pointer_expression "&local_c4" & identifier)) ;) (expression_statement "puVar27 = puVar12;" (assignment_expression "puVar27 = puVar12" identifier = identifier) ;) (do_statement "do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);" do (compound_statement "{\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                }" { (expression_statement "pppppppuVar14 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar3 + 1" identifier = (binary_expression "pppppppuVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = *puVar27;" (assignment_expression "uVar21 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "ppppppuVar18 = *pppppppuVar3;" (assignment_expression "ppppppuVar18 = *pppppppuVar3" identifier = (pointer_expression "*pppppppuVar3" * identifier)) ;) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);" (assignment_expression "*pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21)" (pointer_expression "*pppppppuVar15" * identifier) = (cast_expression "(uint ******)((uint)ppppppuVar18 & uVar21)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)ppppppuVar18 & uVar21)" ( (binary_expression "(uint)ppppppuVar18 & uVar21" (cast_expression "(uint)ppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )))) ;) (expression_statement "uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;" (assignment_expression "uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21" identifier = (binary_expression "uVar5 | (uint)ppppppuVar18 & uVar21" identifier | (binary_expression "(uint)ppppppuVar18 & uVar21" (cast_expression "(uint)ppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier))) ;) (expression_statement "pppppppuVar3 = pppppppuVar14;" (assignment_expression "pppppppuVar3 = pppppppuVar14" identifier = identifier) ;) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar14)" ( (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (if_statement "if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "puVar27 = puVar12;" (assignment_expression "puVar27 = puVar12" identifier = identifier) ;) (expression_statement "ppiVar30 = &local_a4;" (assignment_expression "ppiVar30 = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (do_statement "do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);" do (compound_statement "{\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  }" { (expression_statement "uVar23 = *puVar27;" (assignment_expression "uVar23 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) (expression_statement "piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);" (assignment_expression "piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23)" identifier = (cast_expression "(int *)(~(uint)*pppppppuVar3 & uVar23)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)*pppppppuVar3 & uVar23)" ( (binary_expression "~(uint)*pppppppuVar3 & uVar23" (binary_expression "~(uint)*pppppppuVar3" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier) & identifier) )))) ;) (expression_statement "ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);" (assignment_expression "ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3)" identifier = (cast_expression "(uint ******)(~uVar23 & (uint)*pppppppuVar3)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~uVar23 & (uint)*pppppppuVar3)" ( (binary_expression "~uVar23 & (uint)*pppppppuVar3" (unary_expression "~uVar23" ~ identifier) & (binary_expression "(uint)*pppppppuVar3" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*ppiVar30 = piVar33;" (assignment_expression "*ppiVar30 = piVar33" (pointer_expression "*ppiVar30" * identifier) = identifier) ;) (expression_statement "*pppppppuVar3 = ppppppuVar18;" (assignment_expression "*pppppppuVar3 = ppppppuVar18" (pointer_expression "*pppppppuVar3" * identifier) = identifier) ;) (expression_statement "uVar5 = uVar5 | (uint)piVar33;" (assignment_expression "uVar5 = uVar5 | (uint)piVar33" identifier = (binary_expression "uVar5 | (uint)piVar33" identifier | (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar21 = uVar21 | (uint)ppppppuVar18;" (assignment_expression "uVar21 = uVar21 | (uint)ppppppuVar18" identifier = (binary_expression "uVar21 | (uint)ppppppuVar18" identifier | (cast_expression "(uint)ppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar3 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar3 = pppppppuVar3 + 1" identifier = (binary_expression "pppppppuVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" identifier = (binary_expression "ppiVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 + 8 != puVar27)" ( (binary_expression "puVar12 + 8 != puVar27" (binary_expression "puVar12 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);" (assignment_expression "pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc)" identifier = (cast_expression "(uint *******)(iVar25 + (int)pppppppuVar34 * 0xc)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar34 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar34 * 0xc" identifier + (binary_expression "(int)pppppppuVar34 * 0xc" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }" { (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" identifier = (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar27 = puVar7 + (int)pppppppuVar37 * 8;" (assignment_expression "puVar27 = puVar7 + (int)pppppppuVar37 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar37 * 8" identifier + (binary_expression "(int)pppppppuVar37 * 8" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar27 = (uint)local_a4;" (assignment_expression "*puVar27 = (uint)local_a4" (pointer_expression "*puVar27" * identifier) = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar27[1] = local_a0;" (assignment_expression "puVar27[1] = local_a0" (subscript_expression "puVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[2] = local_9c;" (assignment_expression "puVar27[2] = local_9c" (subscript_expression "puVar27[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[3] = local_98;" (assignment_expression "puVar27[3] = local_98" (subscript_expression "puVar27[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[4] = local_94;" (assignment_expression "puVar27[4] = local_94" (subscript_expression "puVar27[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[5] = local_90;" (assignment_expression "puVar27[5] = local_90" (subscript_expression "puVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[6] = local_8c;" (assignment_expression "puVar27[6] = local_8c" (subscript_expression "puVar27[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[7] = local_88;" (assignment_expression "puVar27[7] = local_88" (subscript_expression "puVar27[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[1] = local_c0;" (assignment_expression "puVar12[1] = local_c0" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = local_bc;" (assignment_expression "puVar12[2] = local_bc" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar12 = (uint)local_c4;" (assignment_expression "*puVar12 = (uint)local_c4" (pointer_expression "*puVar12" * identifier) = (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar12[3] = local_b8;" (assignment_expression "puVar12[3] = local_b8" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = local_b4;" (assignment_expression "puVar12[4] = local_b4" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = local_b0;" (assignment_expression "puVar12[5] = local_b0" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = local_ac;" (assignment_expression "puVar12[6] = local_ac" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = local_a8;" (assignment_expression "puVar12[7] = local_a8" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppuVar3 = pppppppuVar15;" (assignment_expression "pppppppuVar3 = pppppppuVar15" identifier = identifier) ;) (expression_statement "iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);" (assignment_expression "iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc)" identifier = (call_expression "(*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc)" (parenthesized_expression "(*(code *)(iVar4 + 0x69e0))" ( (pointer_expression "*(code *)(iVar4 + 0x69e0)" * (cast_expression "(code *)(iVar4 + 0x69e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x69e0)" ( (binary_expression "iVar4 + 0x69e0" identifier + number_literal) )))) )) (argument_list "(iVar25 + (int)pppppppuVar37 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" identifier + (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (iVar28 != 0) goto LAB_000493b8;" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000493b8;" goto statement_identifier ;)) (expression_statement "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);" (assignment_expression "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar37 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar37 + 1)" ( (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];" (assignment_expression "pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124]" identifier = (cast_expression "(uint *******)pppppppuVar20[3][local_124]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppuVar20[3][local_124]" (subscript_expression "pppppppuVar20[3]" identifier [ number_literal ]) [ identifier ]))) ;) (expression_statement "iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);" (assignment_expression "iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15)" identifier = (call_expression "(*(code *)(iVar36 + 0x33f8))(pppppppuVar15)" (parenthesized_expression "(*(code *)(iVar36 + 0x33f8))" ( (pointer_expression "*(code *)(iVar36 + 0x33f8)" * (cast_expression "(code *)(iVar36 + 0x33f8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x33f8)" ( (binary_expression "iVar36 + 0x33f8" identifier + number_literal) )))) )) (argument_list "(pppppppuVar15)" ( identifier )))) ;) (if_statement "if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }" { (expression_statement "local_118 = (int)pppppppuVar37 << 1;" (assignment_expression "local_118 = (int)pppppppuVar37 << 1" identifier = (binary_expression "(int)pppppppuVar37 << 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (goto_statement "goto LAB_000493b8;" goto statement_identifier ;) })) (if_statement "if (uVar21 == 0) break;" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);" (assignment_expression "pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar34 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar34 + 1)" ( (binary_expression "(int)pppppppuVar34 + 1" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pppppppuVar34 < (int)pppppppuVar37)" ( (binary_expression "(int)pppppppuVar34 < (int)pppppppuVar37" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" identifier = (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }" if (parenthesized_expression "(pppppppuVar37 == pppppppuVar34)" ( (binary_expression "pppppppuVar37 == pppppppuVar34" identifier == identifier) )) (compound_statement "{\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }" { (expression_statement "ppppppuVar18 = pppppppuVar20[3];" (assignment_expression "ppppppuVar18 = pppppppuVar20[3]" identifier = (subscript_expression "pppppppuVar20[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d03c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d03c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = puVar7 + (int)pppppppuVar37 * 8;" (assignment_expression "puVar12 = puVar7 + (int)pppppppuVar37 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar37 * 8" identifier + (binary_expression "(int)pppppppuVar37 * 8" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar12 = (uint)local_e4;" (assignment_expression "*puVar12 = (uint)local_e4" (pointer_expression "*puVar12" * identifier) = (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);" (assignment_expression "pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124)" identifier = (cast_expression "(uint *******)(ppppppuVar18 + local_124)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppuVar18 + local_124)" ( (binary_expression "ppppppuVar18 + local_124" identifier + identifier) )))) ;) (expression_statement "puVar12[1] = local_e0;" (assignment_expression "puVar12[1] = local_e0" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);" (assignment_expression "puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar37 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" identifier + (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar12[2] = local_dc;" (assignment_expression "puVar12[2] = local_dc" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = local_d8;" (assignment_expression "puVar12[3] = local_d8" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = local_d4;" (assignment_expression "puVar12[4] = local_d4" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = local_d0;" (assignment_expression "puVar12[5] = local_d0" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = local_cc;" (assignment_expression "puVar12[6] = local_cc" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = local_c8;" (assignment_expression "puVar12[7] = local_c8" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar35 = *pppppppuVar3;" (assignment_expression "ppppppuVar35 = *pppppppuVar3" identifier = (pointer_expression "*pppppppuVar3" * identifier)) ;) (expression_statement "*puVar32 = 1;" (assignment_expression "*puVar32 = 1" (pointer_expression "*puVar32" * identifier) = number_literal) ;) (expression_statement "puVar32[1] = 1;" (assignment_expression "puVar32[1] = 1" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12 = (uint *)(*pcVar8)(4);" (assignment_expression "puVar12 = (uint *)(*pcVar8)(4)" identifier = (cast_expression "(uint *)(*pcVar8)(4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar8)(4)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "puVar32[2] = puVar12;" (assignment_expression "puVar32[2] = puVar12" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }" if (parenthesized_expression "(puVar12 != (uint *)0x0)" ( (binary_expression "puVar12 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }" { (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" identifier = (subscript_expression "pppppppuVar20[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);" (assignment_expression "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar37 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar37 + 1)" ( (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar12 = (uint)ppppppuVar35;" (assignment_expression "*puVar12 = (uint)ppppppuVar35" (pointer_expression "*puVar12" * identifier) = (cast_expression "(uint)ppppppuVar35" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;) })) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar32 = 0;" (assignment_expression "*puVar32 = 0" (pointer_expression "*puVar32" * identifier) = number_literal) ;) (if_statement "if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" if (parenthesized_expression "(pppppppuVar37 == (uint *******)0x0)" ( (binary_expression "pppppppuVar37 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" { (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }) (else_clause "else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" else (compound_statement "{\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" { (labeled_statement "LAB_000493b8:\n              iVar36 = iVar25;" statement_identifier : (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;)) (do_statement "do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);" do (compound_statement "{\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              }" { (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" identifier = (binary_expression "iVar36 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar36 + 8))" ( (pointer_expression "*(undefined4 *)(iVar36 + 8)" * (cast_expression "(undefined4 *)(iVar36 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" identifier = identifier) ;) }) while (parenthesized_expression "((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4)" ( (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4" (cast_expression "(int)(local_118 + (int)pppppppuVar37)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_118 + (int)pppppppuVar37)" ( (binary_expression "local_118 + (int)pppppppuVar37" identifier + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier) != identifier) )) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00048f5c;" goto statement_identifier ;) })) (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" identifier = (subscript_expression "pppppppuVar20[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;) })) (if_statement "if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" if (parenthesized_expression "((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0))" ( (binary_expression "(bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "(((uint)ppppppuVar35[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar35[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar35[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar35[1] & 0x200" (cast_expression "(uint)ppppppuVar35[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar35[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" { (expression_statement "pppppppuVar34 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar34 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (if_statement "if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" if (parenthesized_expression "((int)pppppppuVar17[0x17] < 2)" ( (binary_expression "(int)pppppppuVar17[0x17] < 2" (cast_expression "(int)pppppppuVar17[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }" { (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppuVar15 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar15 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);" do (compound_statement "{\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            }" { (expression_statement "pppppppuVar14 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar11 = *pppppppuVar34;" (assignment_expression "ppppppuVar11 = *pppppppuVar34" identifier = (pointer_expression "*pppppppuVar34" * identifier)) ;) (expression_statement "ppppppuVar26 = *pppppppuVar15;" (assignment_expression "ppppppuVar26 = *pppppppuVar15" identifier = (pointer_expression "*pppppppuVar15" * identifier)) ;) (expression_statement "pppppppuVar34 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);" (assignment_expression "*pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (pointer_expression "*pppppppuVar15" * identifier) = (cast_expression "(uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (binary_expression "~(uint)ppppppuVar11 & (uint)ppppppuVar26" (unary_expression "~(uint)ppppppuVar11" ~ (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);" (assignment_expression "pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" identifier = (cast_expression "(uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (binary_expression "(uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "~(uint)ppppppuVar11 & (uint)ppppppuVar26" (unary_expression "~(uint)ppppppuVar11" ~ (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) (expression_statement "pppppppuVar15 = pppppppuVar14;" (assignment_expression "pppppppuVar15 = pppppppuVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppuVar14 != &local_c4)" ( (binary_expression "pppppppuVar14 != &local_c4" identifier != (pointer_expression "&local_c4" & identifier)) )) ;) }) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" else (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" identifier = (subscript_expression "pppppppuVar17[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppuVar15 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar15 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);" do (compound_statement "{\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            }" { (expression_statement "pppppppuVar14 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" identifier = (pointer_expression "*ppppppuVar11" * identifier)) ;) (expression_statement "ppppppuVar26 = *pppppppuVar34;" (assignment_expression "ppppppuVar26 = *pppppppuVar34" identifier = (pointer_expression "*pppppppuVar34" * identifier)) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar34 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);" (assignment_expression "ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" identifier = (cast_expression "(uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" ( (binary_expression "~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15" (unary_expression "~((uint)ppppppuVar26 & (uint)pppppuVar16)" ~ (parenthesized_expression "((uint)ppppppuVar26 & (uint)pppppuVar16)" ( (binary_expression "(uint)ppppppuVar26 & (uint)pppppuVar16" (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) & (binary_expression "(uint)*pppppppuVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar15 = ppppppuVar26;" (assignment_expression "*pppppppuVar15 = ppppppuVar26" (pointer_expression "*pppppppuVar15" * identifier) = identifier) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26)" identifier = (cast_expression "(uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar3 | (uint)ppppppuVar26)" ( (binary_expression "(uint)pppppppuVar3 | (uint)ppppppuVar26" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar15 = pppppppuVar14;" (assignment_expression "pppppppuVar15 = pppppppuVar14" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar14)" ( (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }))) (if_statement "if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;" if (parenthesized_expression "(pppppppuVar3 == (uint *******)0x0)" ( (binary_expression "pppppppuVar3 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) (goto_statement "goto LAB_000490bc;" goto statement_identifier ;) })) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" else (compound_statement "{\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" { (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (if_statement "if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;" if (parenthesized_expression "(((uint)pppppppuVar34 & 0x400) == 0)" ( (binary_expression "((uint)pppppppuVar34 & 0x400) == 0" (parenthesized_expression "((uint)pppppppuVar34 & 0x400)" ( (binary_expression "(uint)pppppppuVar34 & 0x400" (cast_expression "(uint)pppppppuVar34" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) (expression_statement "local_e4 = (uint *******)0x400;" (assignment_expression "local_e4 = (uint *******)0x400" identifier = (cast_expression "(uint *******)0x400" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;" if (parenthesized_expression "((uVar5 & 0x80) == 0)" ( (binary_expression "(uVar5 & 0x80) == 0" (parenthesized_expression "(uVar5 & 0x80)" ( (binary_expression "uVar5 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00048fdc;" goto statement_identifier ;)) (labeled_statement "LAB_00049388:\n        local_e4 = (uint *******)0x0;" statement_identifier : (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" else (compound_statement "{\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" { (if_statement "if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }" if (parenthesized_expression "(bVar1 == 3)" ( (binary_expression "bVar1 == 3" identifier == number_literal) )) (compound_statement "{\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }" { (expression_statement "pppppuVar16 = *ppppppuVar35;" (assignment_expression "pppppuVar16 = *ppppppuVar35" identifier = (pointer_expression "*ppppppuVar35" * identifier)) ;) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);" do (compound_statement "{\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        }" { (expression_statement "pppppppuVar15 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "ppppuVar24 = *pppppuVar16;" (assignment_expression "ppppuVar24 = *pppppuVar16" identifier = (pointer_expression "*pppppuVar16" * identifier)) ;) (expression_statement "pppppuVar16 = pppppuVar16 + 1;" (assignment_expression "pppppuVar16 = pppppuVar16 + 1" identifier = (binary_expression "pppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar34 | (uint)ppppuVar24)" ( (binary_expression "(uint)*pppppppuVar34 | (uint)ppppuVar24" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)ppppuVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" * identifier) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppuVar34 = pppppppuVar15;" (assignment_expression "pppppppuVar34 = pppppppuVar15" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar15)" ( (binary_expression "&local_c4 != pppppppuVar15" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) (goto_statement "goto LAB_00048fc0;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" if (parenthesized_expression "(bVar1 == 5)" ( (binary_expression "bVar1 == 5" identifier == number_literal) )) (compound_statement "{\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" { (if_statement "if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" if (parenthesized_expression "((int)pppppppuVar17[0x17] < 2)" ( (binary_expression "(int)pppppppuVar17[0x17] < 2" (cast_expression "(int)pppppppuVar17[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }" { (expression_statement "local_e4 = (uint *******)0xffffffff;" (assignment_expression "local_e4 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0xffffffff;" (assignment_expression "local_e0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_dc = 0xffffffff;" (assignment_expression "local_dc = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d8 = 0xffffffff;" (assignment_expression "local_d8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d4 = 0xffffffff;" (assignment_expression "local_d4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d0 = 0xffffffff;" (assignment_expression "local_d0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_cc = 0xffffffff;" (assignment_expression "local_cc = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_c8 = 0xffffffff;" (assignment_expression "local_c8 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" else (compound_statement "{\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" identifier = (subscript_expression "pppppppuVar17[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);" do (compound_statement "{\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          }" { (expression_statement "pppppppuVar34 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar3 + 1" identifier = (binary_expression "pppppppuVar3 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" identifier = (pointer_expression "*ppppppuVar11" * identifier)) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);" (assignment_expression "*pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16)" (pointer_expression "*pppppppuVar3" * identifier) = (cast_expression "(uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)*pppppppuVar3 | (uint)pppppuVar16)" ( (binary_expression "(uint)*pppppppuVar3 | (uint)pppppuVar16" (binary_expression "(uint)*pppppppuVar3" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)pppppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar3 = pppppppuVar34;" (assignment_expression "pppppppuVar3 = pppppppuVar34" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar34)" ( (binary_expression "&local_c4 != pppppppuVar34" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }))) (expression_statement "ppppppuVar11 = pppppppuVar17[0x20];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x20]" identifier = (subscript_expression "pppppppuVar17[0x20]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" statement_identifier : (if_statement "if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" if (parenthesized_expression "(((uint)ppppppuVar11 & 0x40) == 0)" ( (binary_expression "((uint)ppppppuVar11 & 0x40) == 0" (parenthesized_expression "((uint)ppppppuVar11 & 0x40)" ( (binary_expression "(uint)ppppppuVar11 & 0x40" (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" { (expression_statement "local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);" (assignment_expression "local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff)" identifier = (cast_expression "(uint *******)((uint)local_e4 & 0xfffffbff)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)local_e4 & 0xfffffbff)" ( (binary_expression "(uint)local_e4 & 0xfffffbff" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) }))) (expression_statement "pppppppuVar3 = local_e4;" (assignment_expression "pppppppuVar3 = local_e4" identifier = identifier) ;) (if_statement "if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }" if (parenthesized_expression "(((uint)ppppppuVar11 & 0x80) != 0)" ( (binary_expression "((uint)ppppppuVar11 & 0x80) != 0" (parenthesized_expression "((uint)ppppppuVar11 & 0x80)" ( (binary_expression "(uint)ppppppuVar11 & 0x80" (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)&SUB_fffffffe;" (assignment_expression "pppppppuVar3 = (uint *******)&SUB_fffffffe" identifier = (cast_expression "(uint *******)&SUB_fffffffe" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&SUB_fffffffe" & identifier))) ;) (expression_statement "local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);" (assignment_expression "local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe)" identifier = (cast_expression "(uint *******)((uint)local_e4 & 0xfffffffe)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)local_e4 & 0xfffffffe)" ( (binary_expression "(uint)local_e4 & 0xfffffffe" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) })) (goto_statement "goto LAB_00048fc0;" goto statement_identifier ;) })) (expression_statement "pppppppuVar3 = (uint *******)0xffffffff;" (assignment_expression "pppppppuVar3 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" if (parenthesized_expression "(bVar1 == 7)" ( (binary_expression "bVar1 == 7" identifier == number_literal) )) (compound_statement "{\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0x20];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x20]" identifier = (subscript_expression "pppppppuVar17[0x20]" identifier [ number_literal ])) ;) (expression_statement "local_e4 = (uint *******)0xffffffff;" (assignment_expression "local_e4 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0xffffffff;" (assignment_expression "local_e0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_dc = 0xffffffff;" (assignment_expression "local_dc = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d8 = 0xffffffff;" (assignment_expression "local_d8 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x00049318;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00048c28:\n    local_124 = local_124 + 1;" statement_identifier : (expression_statement "local_124 = local_124 + 1;" (assignment_expression "local_124 = local_124 + 1" identifier = (binary_expression "local_124 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;" if (parenthesized_expression "((int)ppppppuVar18 <= local_124)" ( (binary_expression "(int)ppppppuVar18 <= local_124" (cast_expression "(int)ppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x00048c3c;" goto statement_identifier ;)) (goto_statement "goto LAB_00048bd4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (labeled_statement "LAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;" statement_identifier : (expression_statement "pppppppuVar3 = (uint *******)0x100;" (assignment_expression "pppppppuVar3 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" identifier = (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar39 + 0x2ced8)" * (pointer_expression "*(code **)(puVar39 + 0x2ced8)" * (cast_expression "(code **)(puVar39 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2ced8)" ( (binary_expression "puVar39 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar20[0xb] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xb] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);" (assignment_expression "uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0)" identifier = (call_expression "(uint)(ppppppuVar18 != (uint ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppppppuVar18 != (uint ******)0x0)" ( (binary_expression "ppppppuVar18 != (uint ******)0x0" identifier != (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )))) ;) (labeled_statement "LAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }" if (parenthesized_expression "(local_84 == (int *)*piVar6)" ( (binary_expression "local_84 == (int *)*piVar6" identifier == (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "piVar6 = local_84;" (assignment_expression "piVar6 = local_84" identifier = identifier) ;) (expression_statement "(**(code **)(puVar39 + 0x2d0b8))();" (call_expression "(**(code **)(puVar39 + 0x2d0b8))()" (parenthesized_expression "(**(code **)(puVar39 + 0x2d0b8))" ( (pointer_expression "**(code **)(puVar39 + 0x2d0b8)" * (pointer_expression "*(code **)(puVar39 + 0x2d0b8)" * (cast_expression "(code **)(puVar39 + 0x2d0b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d0b8)" ( (binary_expression "puVar39 + 0x2d0b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(pppppppuVar3 + 6) == '\x10')" ( (binary_expression "*(char *)(pppppppuVar3 + 6) == '\x10'" (pointer_expression "*(char *)(pppppppuVar3 + 6)" * (cast_expression "(char *)(pppppppuVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar3 + 6)" ( (binary_expression "pppppppuVar3 + 6" identifier + number_literal) )))) == (char_literal "'\x10'" ' escape_sequence ')) )) (compound_statement "{\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }" { (expression_statement "ppppppuVar18 = (uint ******)pppppppuVar3[1][7];" (assignment_expression "ppppppuVar18 = (uint ******)pppppppuVar3[1][7]" identifier = (cast_expression "(uint ******)pppppppuVar3[1][7]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar3[1][7]" (subscript_expression "pppppppuVar3[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];" (assignment_expression "pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3]" (subscript_expression "pppppppuVar3[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar3[1][3]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar3[1][3]" (subscript_expression "pppppppuVar3[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar3[7] = ppppppuVar18;" (assignment_expression "pppppppuVar3[7] = ppppppuVar18" (subscript_expression "pppppppuVar3[7]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pppppppuVar3[3] = (uint ******)pppppppuVar3;" (assignment_expression "pppppppuVar3[3] = (uint ******)pppppppuVar3" (subscript_expression "pppppppuVar3[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppuVar18 = (uint ******)FUN_000445c0();" (assignment_expression "ppppppuVar18 = (uint ******)FUN_000445c0()" identifier = (cast_expression "(uint ******)FUN_000445c0()" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_000445c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppppppuVar3[7] = ppppppuVar18;" (assignment_expression "pppppppuVar3[7] = ppppppuVar18" (subscript_expression "pppppppuVar3[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" if (parenthesized_expression "(ppppppuVar18 == (uint ******)0xffffffff)" ( (binary_expression "ppppppuVar18 == (uint ******)0xffffffff" identifier == (cast_expression "(uint ******)0xffffffff" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    uVar5 = 0xc;\n  }" { (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" else (compound_statement "{\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" { (if_statement "if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(pppppppuVar3 + 6) == '\f')" ( (binary_expression "*(char *)(pppppppuVar3 + 6) == '\f'" (pointer_expression "*(char *)(pppppppuVar3 + 6)" * (cast_expression "(char *)(pppppppuVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar3 + 6)" ( (binary_expression "pppppppuVar3 + 6" identifier + number_literal) )))) == (char_literal "'\f'" ' escape_sequence ')) )) (compound_statement "{\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }" { (expression_statement "iVar25 = *piVar6 + (int)ppppppuVar18 * 8;" (assignment_expression "iVar25 = *piVar6 + (int)ppppppuVar18 * 8" identifier = (binary_expression "*piVar6 + (int)ppppppuVar18 * 8" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)ppppppuVar18 * 8" (cast_expression "(int)ppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;" (assignment_expression "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (parenthesized_expression "((uint)pppppppuVar3[5] & 0x3ff)" ( (binary_expression "(uint)pppppppuVar3[5] & 0x3ff" (cast_expression "(uint)pppppppuVar3[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppuVar3[5]" identifier [ number_literal ])) & number_literal) )) << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) (return_statement "return uVar5;" return identifier ;) (labeled_statement "code_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" statement_identifier : (if_statement "if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" if (parenthesized_expression "(0 < (int)pppppppuVar37)" ( (binary_expression "0 < (int)pppppppuVar37" number_literal < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" { (expression_statement "local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);" (assignment_expression "local_f0 = (undefined1 *)((int)pppppppuVar37 + 1)" identifier = (cast_expression "(undefined1 *)((int)pppppppuVar37 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppuVar37 + 1)" ( (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "iVar4 = (int)local_f0 * 4;" (assignment_expression "iVar4 = (int)local_f0 * 4" identifier = (binary_expression "(int)local_f0 * 4" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);" (assignment_expression "iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4)" identifier = (call_expression "(**(code **)(puVar39 + 0x2d03c))(iVar4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d03c)" * (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "local_e8 = iVar36;" (assignment_expression "local_e8 = iVar36" identifier = identifier) ;) (if_statement "if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" if (parenthesized_expression "((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37))" ( (binary_expression "(iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)" (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_f4 = 0, 0x155551aa < (int)pppppppuVar37)" ( (comma_expression "local_f4 = 0, 0x155551aa < (int)pppppppuVar37" (assignment_expression "local_f4 = 0" identifier = number_literal) , (binary_expression "0x155551aa < (int)pppppppuVar37" number_literal < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      local_118 = (int)pppppppuVar37 << 1;\n    }" { (expression_statement "local_118 = (int)pppppppuVar37 << 1;" (assignment_expression "local_118 = (int)pppppppuVar37 << 1" identifier = (binary_expression "(int)pppppppuVar37 << 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }) (else_clause "else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" else (compound_statement "{\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" { (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" identifier = (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);" (assignment_expression "puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d03c)" * (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "((int)pppppppuVar37 * 0xc)" ( (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }" if (parenthesized_expression "(puVar32 != (undefined4 *)0x0)" ( (binary_expression "puVar32 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }" { (expression_statement "iVar4 = iVar4 + -4;" (assignment_expression "iVar4 = iVar4 + -4" identifier = (binary_expression "iVar4 + -4" identifier + number_literal)) ;) (expression_statement "ppiVar30 = &local_a4;" (assignment_expression "ppiVar30 = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = puVar32 + (int)pppppppuVar37;" (assignment_expression "puVar13 = puVar32 + (int)pppppppuVar37" identifier = (binary_expression "puVar32 + (int)pppppppuVar37" identifier + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_a4 = (int *)0x0;" (assignment_expression "local_a4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar33 = (int *)(iVar25 + 4);" (assignment_expression "piVar33 = (int *)(iVar25 + 4)" identifier = (cast_expression "(int *)(iVar25 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "iVar36 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar36 = *(int *)(puVar39 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);" (assignment_expression "pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" identifier = (cast_expression "(code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" ( (binary_expression "*(int *)(puVar39 + 0x2ce30) + 0x6cac" (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);" do (compound_statement "{\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        }" { (expression_statement "iVar31 = *piVar33;" (assignment_expression "iVar31 = *piVar33" identifier = (pointer_expression "*piVar33" * identifier)) ;) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }" { (do_statement "do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);" do (compound_statement "{\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            }" { (if_statement "if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }" if (parenthesized_expression "(pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff)" ( (binary_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff" (subscript_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" (subscript_expression "pppppppuVar17[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar33[1] + iVar29 * 4)" * (cast_expression "(int *)(piVar33[1] + iVar29 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar33[1] + iVar29 * 4)" ( (binary_expression "piVar33[1] + iVar29 * 4" (subscript_expression "piVar33[1]" identifier [ number_literal ]) + (binary_expression "iVar29 * 4" identifier * number_literal)) )))) ]) != (cast_expression "(uint *****)0xffffffff" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }" { (expression_statement "pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);" (assignment_expression "pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" identifier = (cast_expression "(uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" ( (binary_expression "pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3" (subscript_expression "pppppppuVar17[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3" (cast_expression "(int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" (subscript_expression "pppppppuVar17[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar33[1] + iVar29 * 4)" * (cast_expression "(int *)(piVar33[1] + iVar29 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar33[1] + iVar29 * 4)" ( (binary_expression "piVar33[1] + iVar29 * 4" (subscript_expression "piVar33[1]" identifier [ number_literal ]) + (binary_expression "iVar29 * 4" identifier * number_literal)) )))) ])) * number_literal)) )))) ;) (expression_statement "local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);" (assignment_expression "local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0)" identifier = (call_expression "(*(code *)(iVar36 + 0x59ac))(&local_f0)" (parenthesized_expression "(*(code *)(iVar36 + 0x59ac))" ( (pointer_expression "*(code *)(iVar36 + 0x59ac)" * (cast_expression "(code *)(iVar36 + 0x59ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x59ac)" ( (binary_expression "iVar36 + 0x59ac" identifier + number_literal) )))) )) (argument_list "(&local_f0)" ( (pointer_expression "&local_f0" & identifier) )))) ;) (if_statement "if (local_f4 != 0) goto LAB_000495c0;" if (parenthesized_expression "(local_f4 != 0)" ( (binary_expression "local_f4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) (expression_statement "iVar31 = *piVar33;" (assignment_expression "iVar31 = *piVar33" identifier = (pointer_expression "*piVar33" * identifier)) ;) })) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar29 < iVar31)" ( (binary_expression "iVar29 < iVar31" identifier < identifier) )) ;) })) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0)" identifier = (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_f4,pppppppuVar17,&local_f0,0)" ( (pointer_expression "&local_f4" & identifier) , identifier , (pointer_expression "&local_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar32 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar32 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar32 + iVar28)" * (cast_expression "(int *)((int)puVar32 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + iVar28)" ( (binary_expression "(int)puVar32 + iVar28" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;" if (parenthesized_expression "((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))" ( (binary_expression "(iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" ( (comma_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) , (binary_expression "local_f4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000495c4;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" if (parenthesized_expression "((*(byte *)(iVar31 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar31 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar31 + 0x34) & 1)" ( (binary_expression "*(byte *)(iVar31 + 0x34) & 1" (pointer_expression "*(byte *)(iVar31 + 0x34)" * (cast_expression "(byte *)(iVar31 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x34)" ( (binary_expression "iVar31 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }" { (expression_statement "*(int *)((int)puVar13 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28)" * (cast_expression "(int *)((int)puVar13 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28)" ( (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28 + iVar4)" * (cast_expression "(int *)((int)puVar13 + iVar28 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28 + iVar4)" ( (binary_expression "(int)puVar13 + iVar28 + iVar4" (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) }) (else_clause "else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" else (compound_statement "{\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" { (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1)" identifier = (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_f4,pppppppuVar17,&local_f0,1)" ( (pointer_expression "&local_f4" & identifier) , identifier , (pointer_expression "&local_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar13 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28)" * (cast_expression "(int *)((int)puVar13 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28)" ( (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;" if (parenthesized_expression "((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))" ( (binary_expression "(iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" ( (comma_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) , (binary_expression "local_f4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000495c4;" goto statement_identifier ;)) (if_statement "if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }" if (parenthesized_expression "((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17]))" ( (binary_expression "(iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])" (parenthesized_expression "(iVar31 != *(int *)((int)puVar32 + iVar28))" ( (binary_expression "iVar31 != *(int *)((int)puVar32 + iVar28)" identifier != (pointer_expression "*(int *)((int)puVar32 + iVar28)" * (cast_expression "(int *)((int)puVar32 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + iVar28)" ( (binary_expression "(int)puVar32 + iVar28" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) && (parenthesized_expression "(1 < (int)pppppppuVar17[0x17])" ( (binary_expression "1 < (int)pppppppuVar17[0x17]" number_literal < (cast_expression "(int)pppppppuVar17[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n              bVar2 = true;\n            }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2)" identifier = (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_f4,pppppppuVar17,&local_f0,2)" ( (pointer_expression "&local_f4" & identifier) , identifier , (pointer_expression "&local_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28 + iVar4)" * (cast_expression "(int *)((int)puVar13 + iVar28 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28 + iVar4)" ( (binary_expression "(int)puVar13 + iVar28 + iVar4" (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;" if (parenthesized_expression "((iVar31 == 0) && (local_f4 != 0))" ( (binary_expression "(iVar31 == 0) && (local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_f4 != 0)" ( (binary_expression "local_f4 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) }))) (expression_statement "iVar31 = iVar28 * 8 + iVar25;" (assignment_expression "iVar31 = iVar28 * 8 + iVar25" identifier = (binary_expression "iVar28 * 8 + iVar25" (binary_expression "iVar28 * 8" identifier * number_literal) + identifier)) ;) (expression_statement "ppiVar9 = ppiVar30;" (assignment_expression "ppiVar9 = ppiVar30" identifier = identifier) ;) (do_statement "do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);" do (compound_statement "{\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          }" { (expression_statement "ppiVar10 = ppiVar9 + 1;" (assignment_expression "ppiVar10 = ppiVar9 + 1" identifier = (binary_expression "ppiVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = (uint *)(iVar31 + 0xc00);" (assignment_expression "puVar12 = (uint *)(iVar31 + 0xc00)" identifier = (cast_expression "(uint *)(iVar31 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0xc00)" ( (binary_expression "iVar31 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "iVar31 = iVar31 + 4;" (assignment_expression "iVar31 = iVar31 + 4" identifier = (binary_expression "iVar31 + 4" identifier + number_literal)) ;) (expression_statement "*ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);" (assignment_expression "*ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12)" (pointer_expression "*ppiVar9" * identifier) = (cast_expression "(int *)((uint)*ppiVar9 | *puVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*ppiVar9 | *puVar12)" ( (binary_expression "(uint)*ppiVar9 | *puVar12" (binary_expression "(uint)*ppiVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (pointer_expression "*puVar12" * identifier)) )))) ;) (expression_statement "ppiVar9 = ppiVar10;" (assignment_expression "ppiVar9 = ppiVar10" identifier = identifier) ;) }) while (parenthesized_expression "(&local_84 != ppiVar10)" ( (binary_expression "&local_84 != ppiVar10" (pointer_expression "&local_84" & identifier) != identifier) )) ;) (expression_statement "iVar28 = iVar28 + 4;" (assignment_expression "iVar28 = iVar28 + 4" identifier = (binary_expression "iVar28 + 4" identifier + number_literal)) ;) (expression_statement "piVar33 = piVar33 + 3;" (assignment_expression "piVar33 = piVar33 + 3" identifier = (binary_expression "piVar33 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != iVar28)" ( (binary_expression "iVar4 != iVar28" identifier != identifier) )) ;) (if_statement "if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)0x200;" (assignment_expression "pppppppuVar3 = (uint *******)0x200" identifier = (cast_expression "(uint *******)0x200" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" identifier = (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar39 + 0x2ced8)" * (pointer_expression "*(code **)(puVar39 + 0x2ced8)" * (cast_expression "(code **)(puVar39 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2ced8)" ( (binary_expression "puVar39 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar20[0xc] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xc] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;" if (parenthesized_expression "(ppppppuVar18 == (uint ******)0x0)" ( (binary_expression "ppppppuVar18 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (expression_statement "ppppppuVar35 = ppppppuVar18;" (assignment_expression "ppppppuVar35 = ppppppuVar18" identifier = identifier) ;) (do_statement "do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);" do (compound_statement "{\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          }" { (expression_statement "piVar33 = *ppiVar30;" (assignment_expression "piVar33 = *ppiVar30" identifier = (pointer_expression "*ppiVar30" * identifier)) ;) (if_statement "if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }" if (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }" { (expression_statement "pppppppuVar3 = (uint *******)0x1;" (assignment_expression "pppppppuVar3 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppuVar11 = ppppppuVar35;" (assignment_expression "ppppppuVar11 = ppppppuVar35" identifier = identifier) ;) (do_statement "do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);" do (compound_statement "{\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              }" { (if_statement "if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }" if (parenthesized_expression "(((uint)piVar33 & 1) != 0)" ( (binary_expression "((uint)piVar33 & 1) != 0" (parenthesized_expression "((uint)piVar33 & 1)" ( (binary_expression "(uint)piVar33 & 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar19 = puVar13;" (assignment_expression "puVar19 = puVar13" identifier = identifier) ;) (expression_statement "puVar22 = puVar32;" (assignment_expression "puVar22 = puVar32" identifier = identifier) ;) (expression_statement "iVar4 = iVar36;" (assignment_expression "iVar4 = iVar36" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }" if (parenthesized_expression "(((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00))" ( (binary_expression "(uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar36 + 0xc00)" * (cast_expression "(uint *)(iVar36 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0xc00)" ( (binary_expression "iVar36 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }" { (do_statement "do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);" do (compound_statement "{\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    }" { (expression_statement "puVar12 = (uint *)(iVar4 + 0xc20);" (assignment_expression "puVar12 = (uint *)(iVar4 + 0xc20)" identifier = (cast_expression "(uint *)(iVar4 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc20)" ( (binary_expression "iVar4 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" identifier = (binary_expression "iVar4 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar3 & *puVar12) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *puVar12) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *puVar12)" ( (binary_expression "(uint)pppppppuVar3 & *puVar12" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar12" * identifier)) )) == number_literal) )) ;) (expression_statement "puVar19 = puVar13 + iVar28;" (assignment_expression "puVar19 = puVar13 + iVar28" identifier = (binary_expression "puVar13 + iVar28" identifier + identifier)) ;) (expression_statement "puVar22 = puVar32 + iVar28;" (assignment_expression "puVar22 = puVar32 + iVar28" identifier = (binary_expression "puVar32 + iVar28" identifier + identifier)) ;) })) (expression_statement "*ppppppuVar11 = (uint *****)*puVar22;" (assignment_expression "*ppppppuVar11 = (uint *****)*puVar22" (pointer_expression "*ppppppuVar11" * identifier) = (cast_expression "(uint *****)*puVar22" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar22" * identifier))) ;) (expression_statement "ppppppuVar11[0x100] = (uint *****)*puVar19;" (assignment_expression "ppppppuVar11[0x100] = (uint *****)*puVar19" (subscript_expression "ppppppuVar11[0x100]" identifier [ number_literal ]) = (cast_expression "(uint *****)*puVar19" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar19" * identifier))) ;) })) (expression_statement "piVar33 = (int *)((uint)piVar33 >> 1);" (assignment_expression "piVar33 = (int *)((uint)piVar33 >> 1)" identifier = (cast_expression "(int *)((uint)piVar33 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar33 >> 1)" ( (binary_expression "(uint)piVar33 >> 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar3 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar3 << 1)" ( (binary_expression "(int)pppppppuVar3 << 1" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "ppppppuVar35 = ppppppuVar35 + 0x20;" (assignment_expression "ppppppuVar35 = ppppppuVar35 + 0x20" identifier = (binary_expression "ppppppuVar35 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" identifier = (binary_expression "ppiVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppuVar18 + 0x100 != ppppppuVar35)" ( (binary_expression "ppppppuVar18 + 0x100 != ppppppuVar35" (binary_expression "ppppppuVar18 + 0x100" identifier + number_literal) != identifier) )) ;) }) (else_clause "else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" else (compound_statement "{\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)0x100;" (assignment_expression "pppppppuVar3 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" identifier = (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar39 + 0x2ced8)" * (pointer_expression "*(code **)(puVar39 + 0x2ced8)" * (cast_expression "(code **)(puVar39 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2ced8)" ( (binary_expression "puVar39 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar20[0xb] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xb] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }" if (parenthesized_expression "(ppppppuVar18 == (uint ******)0x0)" ( (binary_expression "ppppppuVar18 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }" { (labeled_statement "LAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000495c4:\n            (*pcVar40)(puVar32);" statement_identifier : (expression_statement "(*pcVar40)(puVar32);" (call_expression "(*pcVar40)(puVar32)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(puVar32)" ( identifier ))) ;)) (expression_statement "iVar36 = local_e8;" (assignment_expression "iVar36 = local_e8" identifier = identifier) ;) (goto_statement "goto LAB_000495d4;" goto statement_identifier ;) })) (expression_statement "pppppppuVar17 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar17 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (do_statement "do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);" do (compound_statement "{\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          }" { (expression_statement "pppppppuVar3 = (uint *******)0x1;" (assignment_expression "pppppppuVar3 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar28 = iVar4;" (assignment_expression "iVar28 = iVar4" identifier = identifier) ;) (for_statement "for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }" for ( (assignment_expression "piVar33 = *ppiVar30" identifier = (pointer_expression "*ppiVar30" * identifier)) ; (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar33 = (int *)((uint)piVar33 >> 1)" identifier = (cast_expression "(int *)((uint)piVar33 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar33 >> 1)" ( (binary_expression "(uint)piVar33 >> 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ) (compound_statement "{\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }" { (if_statement "if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }" if (parenthesized_expression "(((uint)piVar33 & 1) != 0)" ( (binary_expression "((uint)piVar33 & 1) != 0" (parenthesized_expression "((uint)piVar33 & 1)" ( (binary_expression "(uint)piVar33 & 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "iVar31 = iVar36;" (assignment_expression "iVar31 = iVar36" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }" if (parenthesized_expression "(((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00))" ( (binary_expression "(uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar36 + 0xc00)" * (cast_expression "(uint *)(iVar36 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0xc00)" ( (binary_expression "iVar36 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }" { (do_statement "do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);" do (compound_statement "{\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  }" { (expression_statement "puVar12 = (uint *)(iVar31 + 0xc20);" (assignment_expression "puVar12 = (uint *)(iVar31 + 0xc20)" identifier = (cast_expression "(uint *)(iVar31 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0xc20)" ( (binary_expression "iVar31 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "iVar31 = iVar31 + 0x20;" (assignment_expression "iVar31 = iVar31 + 0x20" identifier = (binary_expression "iVar31 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar3 & *puVar12) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *puVar12) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *puVar12)" ( (binary_expression "(uint)pppppppuVar3 & *puVar12" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar12" * identifier)) )) == number_literal) )) ;) (expression_statement "iVar29 = iVar29 * 4;" (assignment_expression "iVar29 = iVar29 * 4" identifier = (binary_expression "iVar29 * 4" identifier * number_literal)) ;) })) (if_statement "if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" if (parenthesized_expression "(((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0)" ( (binary_expression "((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0" (parenthesized_expression "((uint)pppppppuVar3 & (uint)*pppppppuVar17)" ( (binary_expression "(uint)pppppppuVar3 & (uint)*pppppppuVar17" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "(uint)*pppppppuVar17" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )) == number_literal) )) (compound_statement "{\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }" { (expression_statement "ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);" (assignment_expression "ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29)" (subscript_expression "ppppppuVar18[iVar28]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar32 + iVar29)" * (cast_expression "(uint ******)((int)puVar32 + iVar29)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar32 + iVar29)" ( (binary_expression "(int)puVar32 + iVar29" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) (else_clause "else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" else (compound_statement "{\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" { (expression_statement "ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);" (assignment_expression "ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29)" (subscript_expression "ppppppuVar18[iVar28]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar13 + iVar29)" * (cast_expression "(uint ******)((int)puVar13 + iVar29)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar13 + iVar29)" ( (binary_expression "(int)puVar13 + iVar29" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }))) })) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar3 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar3 << 1)" ( (binary_expression "(int)pppppppuVar3 << 1" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" identifier = (binary_expression "iVar4 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" identifier = (binary_expression "ppiVar30 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar17 = pppppppuVar17 + 1;" (assignment_expression "pppppppuVar17 = pppppppuVar17 + 1" identifier = (binary_expression "pppppppuVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0x100)" ( (binary_expression "iVar4 != 0x100" identifier != number_literal) )) ;) }))) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) ;) (if_statement "if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }" if (parenthesized_expression "((int)local_a4 << 0x15 < 0)" ( (binary_expression "(int)local_a4 << 0x15 < 0" (binary_expression "(int)local_a4 << 0x15" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) < number_literal) )) (compound_statement "{\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);" do (compound_statement "{\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          }" { (if_statement "if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }" if (parenthesized_expression "((*puVar7 & 0x400) != 0)" ( (binary_expression "(*puVar7 & 0x400) != 0" (parenthesized_expression "(*puVar7 & 0x400)" ( (binary_expression "*puVar7 & 0x400" (pointer_expression "*puVar7" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }" { (expression_statement "pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];" (assignment_expression "pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" identifier = (cast_expression "(uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" identifier [ (cast_expression "(int)((int)pppppppuVar3 + (int)pppppppuVar37)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar3 + (int)pppppppuVar37)" ( (binary_expression "(int)pppppppuVar3 + (int)pppppppuVar37" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]))) ;) (expression_statement "ppppppuVar18[10] = pppppuVar16;" (assignment_expression "ppppppuVar18[10] = pppppuVar16" (subscript_expression "ppppppuVar18[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }" { (expression_statement "ppppppuVar18[0x10a] = pppppuVar16;" (assignment_expression "ppppppuVar18[0x10a] = pppppuVar16" (subscript_expression "ppppppuVar18[0x10a]" identifier [ number_literal ]) = identifier) ;) })) (break_statement "break;" break ;) })) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar3 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar3 + 1)" ( (binary_expression "(int)pppppppuVar3 + 1" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar7 = puVar7 + 8;" (assignment_expression "puVar7 = puVar7 + 8" identifier = (binary_expression "puVar7 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppuVar3 != pppppppuVar37)" ( (binary_expression "pppppppuVar3 != pppppppuVar37" identifier != identifier) )) ;) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar8)(puVar32);" (call_expression "(*pcVar8)(puVar32)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(puVar32)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(local_e8);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(local_e8)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(local_e8)" ( identifier ))) ;) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (do_statement "do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);" do (compound_statement "{\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        }" { (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" identifier = (binary_expression "iVar36 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar36 + 8))" ( (pointer_expression "*(undefined4 *)(iVar36 + 8)" * (cast_expression "(undefined4 *)(iVar36 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" identifier = identifier) ;) }) while (parenthesized_expression "(iVar25 + (int)pppppppuVar37 * 0xc != iVar4)" ( (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc != iVar4" (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" identifier + (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);" statement_identifier : (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar36);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar36)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar36)" ( identifier ))) ;)) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (do_statement "do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);" do (compound_statement "{\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    }" { (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" identifier = (binary_expression "iVar36 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar36 + 8))" ( (pointer_expression "*(undefined4 *)(iVar36 + 8)" * (cast_expression "(undefined4 *)(iVar36 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25)" ( (binary_expression "iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" identifier != (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4" (cast_expression "(int)(local_118 + (int)pppppppuVar37)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_118 + (int)pppppppuVar37)" ( (binary_expression "local_118 + (int)pppppppuVar37" identifier + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier)) )) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (labeled_statement "LAB_00048f5c:\n    uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) }))) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (if_statement "if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" if (parenthesized_expression "(pppppppuVar37 != (uint *******)0x0)" ( (binary_expression "pppppppuVar37 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) })) (goto_statement "goto LAB_00049784;" goto statement_identifier ;) })))
(translation_unit "reg_errcode_t\nsub_epsilon_src_nodes(re_dfa_t *dfa,Idx node,re_node_set *dest_nodes,re_node_set *candidates)\n\n{\n  byte bVar1;\n  re_token_t token;\n  bool bVar2;\n  re_node_set *prVar3;\n  int iVar4;\n  Idx IVar5;\n  reg_errcode_t rVar6;\n  int *piVar7;\n  uint *puVar8;\n  int iVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  re_dfa_t **pprVar12;\n  re_dfa_t **pprVar13;\n  Idx *pIVar14;\n  Idx **ppIVar15;\n  uint uVar16;\n  Idx *pIVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  re_dfa_t *prVar20;\n  re_node_set *prVar21;\n  Idx *pIVar22;\n  re_node_set *elem;\n  int iVar23;\n  uint uVar24;\n  Idx *pIVar25;\n  Idx *pIVar26;\n  re_node_set *prVar27;\n  uint uVar28;\n  uint *puVar29;\n  re_node_set *prVar30;\n  Idx *pIVar31;\n  int iVar32;\n  re_node_set *set;\n  re_dfa_t **pprVar33;\n  re_node_set *prVar34;\n  uint *puVar35;\n  Idx *pIVar36;\n  re_node_set *set_00;\n  int unaff_s0;\n  int *piVar37;\n  Idx unaff_s2;\n  re_node_set *prVar38;\n  re_node_set *unaff_s3;\n  undefined *puVar39;\n  Idx **unaff_s5;\n  undefined4 *puVar40;\n  undefined *unaff_s6;\n  re_node_set *unaff_s7;\n  byte *pbVar41;\n  int iVar42;\n  re_node_set *prVar43;\n  undefined *puVar44;\n  code *pcVar45;\n  re_dfa_t *unaff_s8;\n  code *pcVar46;\n  undefined4 in_stack_fffffeac;\n  int iStack_124;\n  int iStack_118;\n  int iStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  re_node_set rStack_e4;\n  uint uStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  re_node_set rStack_c4;\n  uint uStack_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint uStack_a8;\n  re_dfa_t *prStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint uStack_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  uint uStack_88;\n  re_dfa_t *prStack_84;\n  int iStack_80;\n  re_node_set *prStack_7c;\n  Idx IStack_78;\n  re_node_set *prStack_74;\n  undefined *puStack_70;\n  Idx **ppIStack_6c;\n  undefined *puStack_68;\n  re_node_set *prStack_64;\n  re_dfa_t *prStack_60;\n  code *pcStack_5c;\n  re_node_set except_nodes;\n  \n  puVar44 = PTR___stack_chk_guard_00075be8;\n  except_nodes.alloc = 0;\n  except_nodes.nelem = 0;\n  except_nodes.elems = (Idx *)0x0;\n  prVar38 = dfa->inveclosures + node;\n  prVar3 = *(re_node_set **)PTR___stack_chk_guard_00075be8;\n  prVar27 = (re_node_set *)prVar38->nelem;\n  elem = (re_node_set *)node;\n  puVar39 = PTR_LAB_00075920;\n  if (0 < (int)prVar27) {\n    unaff_s7 = &except_nodes;\n    unaff_s0 = 0;\n    unaff_s5 = &prVar38->elems;\n    puVar39 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      iVar4 = prVar38->elems[unaff_s0];\n      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < (int)prVar27);\n    unaff_s2 = node;\n    unaff_s3 = dest_nodes;\n    unaff_s8 = dfa;\n    if (0 < (int)prVar27) {\n      iVar4 = 0;\n      set_00 = (re_node_set *)&dest_nodes->nelem;\n      prVar34 = (re_node_set *)&dest_nodes->elems;\n      prVar21 = (re_node_set *)&except_nodes.elems;\n      do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n  rVar6 = _REG_NOERROR;\n  node = unaff_s2;\n  dest_nodes = unaff_s3;\n  dfa = unaff_s8;\nLAB_00048a80:\n  if (prVar3 == *(re_node_set **)puVar44) {\n    return rVar6;\n  }\n  pcVar46 = build_trtable;\n  puVar44 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar7 = *(int **)(puVar44 + 0x2d0f8);\n  prStack_84 = (re_dfa_t *)*piVar7;\n  prVar27 = elem;\n  iStack_80 = unaff_s0;\n  prStack_7c = prVar38;\n  IStack_78 = node;\n  prStack_74 = dest_nodes;\n  puStack_70 = puVar39;\n  ppIStack_6c = unaff_s5;\n  puStack_68 = unaff_s6;\n  prStack_64 = unaff_s7;\n  prStack_60 = dfa;\n  pcStack_5c = pcVar46;\n  iVar4 = (**(code **)(puVar44 + 0x2d03c))(0x2c00);\n  if (iVar4 == 0) goto LAB_00048f5c;\n  pIVar36 = elem->elems;\n  elem[3].elems = (Idx *)0x0;\n  puVar8 = (uint *)(iVar4 + 0xc00);\n  elem[4].alloc = 0;\n  rStack_e4.alloc = 0;\n  rStack_e4.nelem = 0;\n  rStack_e4.elems = (Idx *)0x0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  uStack_c8 = 0;\n  if (0 < (int)pIVar36) {\n    iVar32 = *(int *)(puVar44 + 0x2ce30);\n    iStack_124 = 0;\n    iVar9 = *(int *)(puVar44 + 0x2ce30);\n    prVar38 = (re_node_set *)0x0;\nLAB_00048bd4:\n    iVar19 = iStack_124 * 4;\n    pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2);\n    bVar1 = pbVar41[4];\n    uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));\n      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));\n      *ppIVar15 = (Idx *)prVar27;\nLAB_00048fc0:\n      IVar5 = rStack_e4.alloc;\n      if (uVar28 == 0) goto LAB_000490bc;\n      if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }\n      rStack_e4.alloc = 0;\n      rStack_e4.nelem = 0;\n      rStack_e4.elems = (Idx *)0x0;\n      uStack_d8 = 0;\n      uStack_d4 = 0;\n      uStack_d0 = 0;\n      uStack_cc = 0;\n      uStack_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    iStack_124 = iStack_124 + 1;\n    if ((int)pIVar36 <= iStack_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00049784:\n  prVar27 = (re_node_set *)0x100;\n  pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n  elem[3].elems = pIVar36;\n  rVar6 = (reg_errcode_t)(pIVar36 != (Idx *)0x0);\nLAB_00048f60:\n  if (prStack_84 == (re_dfa_t *)*piVar7) {\n    return rVar6;\n  }\n  pcVar46 = *(code **)(puVar44 + 0x2d0b8);\n  prVar20 = prStack_84;\n  (*pcVar46)();\n  if (*(char *)&prVar27[2].alloc == '\x10') {\n    IVar5 = *(Idx *)(prVar27->nelem + 0x1c);\n    prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc);\n    prVar27[2].nelem = IVar5;\n    return _REG_NOERROR;\n  }\n  prVar27[1].alloc = (Idx)prVar27;\n  token.opr.sbcset = (re_bitset_ptr_t)(pcVar46 + 0x33cb4);\n  token._4_4_ = in_stack_fffffeac;\n  IVar5 = re_dfa_add_node(prVar20,token);\n  prVar27[2].nelem = IVar5;\n  if (IVar5 == -1) {\n    rVar6 = _REG_ESPACE;\n  }\n  else {\n    if (*(char *)&prVar27[2].alloc == '\f') {\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar6 = _REG_NOERROR;\n  }\n  return rVar6;\ncode_r0x00048c3c:\n  if (0 < (int)prVar38) {\n    puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);\n    uStack_ec = 0;\n    puStack_f0 = puVar10;\n    iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);\n    iStack_e8 = iVar32;\n    if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {\n      iStack_118 = (int)prVar38 << 1;\n    }\n    else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar44 + 0x2d10c))(iVar32);\n    iVar32 = iVar4;\n    do {\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);\n    (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00048f5c:\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar44 + 0x2d10c))(iVar4);\n  if (prVar38 != (re_node_set *)0x0) {\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}\n\n" (function_definition "reg_errcode_t\nsub_epsilon_src_nodes(re_dfa_t *dfa,Idx node,re_node_set *dest_nodes,re_node_set *candidates)\n\n{\n  byte bVar1;\n  re_token_t token;\n  bool bVar2;\n  re_node_set *prVar3;\n  int iVar4;\n  Idx IVar5;\n  reg_errcode_t rVar6;\n  int *piVar7;\n  uint *puVar8;\n  int iVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  re_dfa_t **pprVar12;\n  re_dfa_t **pprVar13;\n  Idx *pIVar14;\n  Idx **ppIVar15;\n  uint uVar16;\n  Idx *pIVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  re_dfa_t *prVar20;\n  re_node_set *prVar21;\n  Idx *pIVar22;\n  re_node_set *elem;\n  int iVar23;\n  uint uVar24;\n  Idx *pIVar25;\n  Idx *pIVar26;\n  re_node_set *prVar27;\n  uint uVar28;\n  uint *puVar29;\n  re_node_set *prVar30;\n  Idx *pIVar31;\n  int iVar32;\n  re_node_set *set;\n  re_dfa_t **pprVar33;\n  re_node_set *prVar34;\n  uint *puVar35;\n  Idx *pIVar36;\n  re_node_set *set_00;\n  int unaff_s0;\n  int *piVar37;\n  Idx unaff_s2;\n  re_node_set *prVar38;\n  re_node_set *unaff_s3;\n  undefined *puVar39;\n  Idx **unaff_s5;\n  undefined4 *puVar40;\n  undefined *unaff_s6;\n  re_node_set *unaff_s7;\n  byte *pbVar41;\n  int iVar42;\n  re_node_set *prVar43;\n  undefined *puVar44;\n  code *pcVar45;\n  re_dfa_t *unaff_s8;\n  code *pcVar46;\n  undefined4 in_stack_fffffeac;\n  int iStack_124;\n  int iStack_118;\n  int iStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  re_node_set rStack_e4;\n  uint uStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  re_node_set rStack_c4;\n  uint uStack_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint uStack_a8;\n  re_dfa_t *prStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint uStack_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  uint uStack_88;\n  re_dfa_t *prStack_84;\n  int iStack_80;\n  re_node_set *prStack_7c;\n  Idx IStack_78;\n  re_node_set *prStack_74;\n  undefined *puStack_70;\n  Idx **ppIStack_6c;\n  undefined *puStack_68;\n  re_node_set *prStack_64;\n  re_dfa_t *prStack_60;\n  code *pcStack_5c;\n  re_node_set except_nodes;\n  \n  puVar44 = PTR___stack_chk_guard_00075be8;\n  except_nodes.alloc = 0;\n  except_nodes.nelem = 0;\n  except_nodes.elems = (Idx *)0x0;\n  prVar38 = dfa->inveclosures + node;\n  prVar3 = *(re_node_set **)PTR___stack_chk_guard_00075be8;\n  prVar27 = (re_node_set *)prVar38->nelem;\n  elem = (re_node_set *)node;\n  puVar39 = PTR_LAB_00075920;\n  if (0 < (int)prVar27) {\n    unaff_s7 = &except_nodes;\n    unaff_s0 = 0;\n    unaff_s5 = &prVar38->elems;\n    puVar39 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      iVar4 = prVar38->elems[unaff_s0];\n      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < (int)prVar27);\n    unaff_s2 = node;\n    unaff_s3 = dest_nodes;\n    unaff_s8 = dfa;\n    if (0 < (int)prVar27) {\n      iVar4 = 0;\n      set_00 = (re_node_set *)&dest_nodes->nelem;\n      prVar34 = (re_node_set *)&dest_nodes->elems;\n      prVar21 = (re_node_set *)&except_nodes.elems;\n      do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n  rVar6 = _REG_NOERROR;\n  node = unaff_s2;\n  dest_nodes = unaff_s3;\n  dfa = unaff_s8;\nLAB_00048a80:\n  if (prVar3 == *(re_node_set **)puVar44) {\n    return rVar6;\n  }\n  pcVar46 = build_trtable;\n  puVar44 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar7 = *(int **)(puVar44 + 0x2d0f8);\n  prStack_84 = (re_dfa_t *)*piVar7;\n  prVar27 = elem;\n  iStack_80 = unaff_s0;\n  prStack_7c = prVar38;\n  IStack_78 = node;\n  prStack_74 = dest_nodes;\n  puStack_70 = puVar39;\n  ppIStack_6c = unaff_s5;\n  puStack_68 = unaff_s6;\n  prStack_64 = unaff_s7;\n  prStack_60 = dfa;\n  pcStack_5c = pcVar46;\n  iVar4 = (**(code **)(puVar44 + 0x2d03c))(0x2c00);\n  if (iVar4 == 0) goto LAB_00048f5c;\n  pIVar36 = elem->elems;\n  elem[3].elems = (Idx *)0x0;\n  puVar8 = (uint *)(iVar4 + 0xc00);\n  elem[4].alloc = 0;\n  rStack_e4.alloc = 0;\n  rStack_e4.nelem = 0;\n  rStack_e4.elems = (Idx *)0x0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  uStack_c8 = 0;\n  if (0 < (int)pIVar36) {\n    iVar32 = *(int *)(puVar44 + 0x2ce30);\n    iStack_124 = 0;\n    iVar9 = *(int *)(puVar44 + 0x2ce30);\n    prVar38 = (re_node_set *)0x0;\nLAB_00048bd4:\n    iVar19 = iStack_124 * 4;\n    pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2);\n    bVar1 = pbVar41[4];\n    uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));\n      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));\n      *ppIVar15 = (Idx *)prVar27;\nLAB_00048fc0:\n      IVar5 = rStack_e4.alloc;\n      if (uVar28 == 0) goto LAB_000490bc;\n      if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }\n      rStack_e4.alloc = 0;\n      rStack_e4.nelem = 0;\n      rStack_e4.elems = (Idx *)0x0;\n      uStack_d8 = 0;\n      uStack_d4 = 0;\n      uStack_d0 = 0;\n      uStack_cc = 0;\n      uStack_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    iStack_124 = iStack_124 + 1;\n    if ((int)pIVar36 <= iStack_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00049784:\n  prVar27 = (re_node_set *)0x100;\n  pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n  elem[3].elems = pIVar36;\n  rVar6 = (reg_errcode_t)(pIVar36 != (Idx *)0x0);\nLAB_00048f60:\n  if (prStack_84 == (re_dfa_t *)*piVar7) {\n    return rVar6;\n  }\n  pcVar46 = *(code **)(puVar44 + 0x2d0b8);\n  prVar20 = prStack_84;\n  (*pcVar46)();\n  if (*(char *)&prVar27[2].alloc == '\x10') {\n    IVar5 = *(Idx *)(prVar27->nelem + 0x1c);\n    prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc);\n    prVar27[2].nelem = IVar5;\n    return _REG_NOERROR;\n  }\n  prVar27[1].alloc = (Idx)prVar27;\n  token.opr.sbcset = (re_bitset_ptr_t)(pcVar46 + 0x33cb4);\n  token._4_4_ = in_stack_fffffeac;\n  IVar5 = re_dfa_add_node(prVar20,token);\n  prVar27[2].nelem = IVar5;\n  if (IVar5 == -1) {\n    rVar6 = _REG_ESPACE;\n  }\n  else {\n    if (*(char *)&prVar27[2].alloc == '\f') {\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar6 = _REG_NOERROR;\n  }\n  return rVar6;\ncode_r0x00048c3c:\n  if (0 < (int)prVar38) {\n    puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);\n    uStack_ec = 0;\n    puStack_f0 = puVar10;\n    iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);\n    iStack_e8 = iVar32;\n    if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {\n      iStack_118 = (int)prVar38 << 1;\n    }\n    else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar44 + 0x2d10c))(iVar32);\n    iVar32 = iVar4;\n    do {\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);\n    (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00048f5c:\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar44 + 0x2d10c))(iVar4);\n  if (prVar38 != (re_node_set *)0x0) {\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" type_identifier (function_declarator "sub_epsilon_src_nodes(re_dfa_t *dfa,Idx node,re_node_set *dest_nodes,re_node_set *candidates)" identifier (parameter_list "(re_dfa_t *dfa,Idx node,re_node_set *dest_nodes,re_node_set *candidates)" ( (parameter_declaration "re_dfa_t *dfa" type_identifier (pointer_declarator "*dfa" * identifier)) , (parameter_declaration "Idx node" type_identifier identifier) , (parameter_declaration "re_node_set *dest_nodes" type_identifier (pointer_declarator "*dest_nodes" * identifier)) , (parameter_declaration "re_node_set *candidates" type_identifier (pointer_declarator "*candidates" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  re_token_t token;\n  bool bVar2;\n  re_node_set *prVar3;\n  int iVar4;\n  Idx IVar5;\n  reg_errcode_t rVar6;\n  int *piVar7;\n  uint *puVar8;\n  int iVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  re_dfa_t **pprVar12;\n  re_dfa_t **pprVar13;\n  Idx *pIVar14;\n  Idx **ppIVar15;\n  uint uVar16;\n  Idx *pIVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  re_dfa_t *prVar20;\n  re_node_set *prVar21;\n  Idx *pIVar22;\n  re_node_set *elem;\n  int iVar23;\n  uint uVar24;\n  Idx *pIVar25;\n  Idx *pIVar26;\n  re_node_set *prVar27;\n  uint uVar28;\n  uint *puVar29;\n  re_node_set *prVar30;\n  Idx *pIVar31;\n  int iVar32;\n  re_node_set *set;\n  re_dfa_t **pprVar33;\n  re_node_set *prVar34;\n  uint *puVar35;\n  Idx *pIVar36;\n  re_node_set *set_00;\n  int unaff_s0;\n  int *piVar37;\n  Idx unaff_s2;\n  re_node_set *prVar38;\n  re_node_set *unaff_s3;\n  undefined *puVar39;\n  Idx **unaff_s5;\n  undefined4 *puVar40;\n  undefined *unaff_s6;\n  re_node_set *unaff_s7;\n  byte *pbVar41;\n  int iVar42;\n  re_node_set *prVar43;\n  undefined *puVar44;\n  code *pcVar45;\n  re_dfa_t *unaff_s8;\n  code *pcVar46;\n  undefined4 in_stack_fffffeac;\n  int iStack_124;\n  int iStack_118;\n  int iStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  int iStack_e8;\n  re_node_set rStack_e4;\n  uint uStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  re_node_set rStack_c4;\n  uint uStack_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint uStack_a8;\n  re_dfa_t *prStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint uStack_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  uint uStack_88;\n  re_dfa_t *prStack_84;\n  int iStack_80;\n  re_node_set *prStack_7c;\n  Idx IStack_78;\n  re_node_set *prStack_74;\n  undefined *puStack_70;\n  Idx **ppIStack_6c;\n  undefined *puStack_68;\n  re_node_set *prStack_64;\n  re_dfa_t *prStack_60;\n  code *pcStack_5c;\n  re_node_set except_nodes;\n  \n  puVar44 = PTR___stack_chk_guard_00075be8;\n  except_nodes.alloc = 0;\n  except_nodes.nelem = 0;\n  except_nodes.elems = (Idx *)0x0;\n  prVar38 = dfa->inveclosures + node;\n  prVar3 = *(re_node_set **)PTR___stack_chk_guard_00075be8;\n  prVar27 = (re_node_set *)prVar38->nelem;\n  elem = (re_node_set *)node;\n  puVar39 = PTR_LAB_00075920;\n  if (0 < (int)prVar27) {\n    unaff_s7 = &except_nodes;\n    unaff_s0 = 0;\n    unaff_s5 = &prVar38->elems;\n    puVar39 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      iVar4 = prVar38->elems[unaff_s0];\n      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < (int)prVar27);\n    unaff_s2 = node;\n    unaff_s3 = dest_nodes;\n    unaff_s8 = dfa;\n    if (0 < (int)prVar27) {\n      iVar4 = 0;\n      set_00 = (re_node_set *)&dest_nodes->nelem;\n      prVar34 = (re_node_set *)&dest_nodes->elems;\n      prVar21 = (re_node_set *)&except_nodes.elems;\n      do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n  rVar6 = _REG_NOERROR;\n  node = unaff_s2;\n  dest_nodes = unaff_s3;\n  dfa = unaff_s8;\nLAB_00048a80:\n  if (prVar3 == *(re_node_set **)puVar44) {\n    return rVar6;\n  }\n  pcVar46 = build_trtable;\n  puVar44 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar7 = *(int **)(puVar44 + 0x2d0f8);\n  prStack_84 = (re_dfa_t *)*piVar7;\n  prVar27 = elem;\n  iStack_80 = unaff_s0;\n  prStack_7c = prVar38;\n  IStack_78 = node;\n  prStack_74 = dest_nodes;\n  puStack_70 = puVar39;\n  ppIStack_6c = unaff_s5;\n  puStack_68 = unaff_s6;\n  prStack_64 = unaff_s7;\n  prStack_60 = dfa;\n  pcStack_5c = pcVar46;\n  iVar4 = (**(code **)(puVar44 + 0x2d03c))(0x2c00);\n  if (iVar4 == 0) goto LAB_00048f5c;\n  pIVar36 = elem->elems;\n  elem[3].elems = (Idx *)0x0;\n  puVar8 = (uint *)(iVar4 + 0xc00);\n  elem[4].alloc = 0;\n  rStack_e4.alloc = 0;\n  rStack_e4.nelem = 0;\n  rStack_e4.elems = (Idx *)0x0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  uStack_c8 = 0;\n  if (0 < (int)pIVar36) {\n    iVar32 = *(int *)(puVar44 + 0x2ce30);\n    iStack_124 = 0;\n    iVar9 = *(int *)(puVar44 + 0x2ce30);\n    prVar38 = (re_node_set *)0x0;\nLAB_00048bd4:\n    iVar19 = iStack_124 * 4;\n    pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2);\n    bVar1 = pbVar41[4];\n    uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));\n      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));\n      *ppIVar15 = (Idx *)prVar27;\nLAB_00048fc0:\n      IVar5 = rStack_e4.alloc;\n      if (uVar28 == 0) goto LAB_000490bc;\n      if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }\n      rStack_e4.alloc = 0;\n      rStack_e4.nelem = 0;\n      rStack_e4.elems = (Idx *)0x0;\n      uStack_d8 = 0;\n      uStack_d4 = 0;\n      uStack_d0 = 0;\n      uStack_cc = 0;\n      uStack_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    iStack_124 = iStack_124 + 1;\n    if ((int)pIVar36 <= iStack_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00049784:\n  prVar27 = (re_node_set *)0x100;\n  pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n  elem[3].elems = pIVar36;\n  rVar6 = (reg_errcode_t)(pIVar36 != (Idx *)0x0);\nLAB_00048f60:\n  if (prStack_84 == (re_dfa_t *)*piVar7) {\n    return rVar6;\n  }\n  pcVar46 = *(code **)(puVar44 + 0x2d0b8);\n  prVar20 = prStack_84;\n  (*pcVar46)();\n  if (*(char *)&prVar27[2].alloc == '\x10') {\n    IVar5 = *(Idx *)(prVar27->nelem + 0x1c);\n    prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc);\n    prVar27[2].nelem = IVar5;\n    return _REG_NOERROR;\n  }\n  prVar27[1].alloc = (Idx)prVar27;\n  token.opr.sbcset = (re_bitset_ptr_t)(pcVar46 + 0x33cb4);\n  token._4_4_ = in_stack_fffffeac;\n  IVar5 = re_dfa_add_node(prVar20,token);\n  prVar27[2].nelem = IVar5;\n  if (IVar5 == -1) {\n    rVar6 = _REG_ESPACE;\n  }\n  else {\n    if (*(char *)&prVar27[2].alloc == '\f') {\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar6 = _REG_NOERROR;\n  }\n  return rVar6;\ncode_r0x00048c3c:\n  if (0 < (int)prVar38) {\n    puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);\n    uStack_ec = 0;\n    puStack_f0 = puVar10;\n    iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);\n    iStack_e8 = iVar32;\n    if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {\n      iStack_118 = (int)prVar38 << 1;\n    }\n    else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar44 + 0x2d10c))(iVar32);\n    iVar32 = iVar4;\n    do {\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);\n    (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00048f5c:\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar44 + 0x2d10c))(iVar4);\n  if (prVar38 != (re_node_set *)0x0) {\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "re_token_t token;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "re_node_set *prVar3;" type_identifier (pointer_declarator "*prVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "Idx IVar5;" type_identifier identifier ;) (declaration "reg_errcode_t rVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "re_dfa_t **pprVar12;" type_identifier (pointer_declarator "**pprVar12" * (pointer_declarator "*pprVar12" * identifier)) ;) (declaration "re_dfa_t **pprVar13;" type_identifier (pointer_declarator "**pprVar13" * (pointer_declarator "*pprVar13" * identifier)) ;) (declaration "Idx *pIVar14;" type_identifier (pointer_declarator "*pIVar14" * identifier) ;) (declaration "Idx **ppIVar15;" type_identifier (pointer_declarator "**ppIVar15" * (pointer_declarator "*ppIVar15" * identifier)) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "Idx *pIVar17;" type_identifier (pointer_declarator "*pIVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "re_dfa_t *prVar20;" type_identifier (pointer_declarator "*prVar20" * identifier) ;) (declaration "re_node_set *prVar21;" type_identifier (pointer_declarator "*prVar21" * identifier) ;) (declaration "Idx *pIVar22;" type_identifier (pointer_declarator "*pIVar22" * identifier) ;) (declaration "re_node_set *elem;" type_identifier (pointer_declarator "*elem" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "Idx *pIVar25;" type_identifier (pointer_declarator "*pIVar25" * identifier) ;) (declaration "Idx *pIVar26;" type_identifier (pointer_declarator "*pIVar26" * identifier) ;) (declaration "re_node_set *prVar27;" type_identifier (pointer_declarator "*prVar27" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "re_node_set *prVar30;" type_identifier (pointer_declarator "*prVar30" * identifier) ;) (declaration "Idx *pIVar31;" type_identifier (pointer_declarator "*pIVar31" * identifier) ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "re_node_set *set;" type_identifier (pointer_declarator "*set" * identifier) ;) (declaration "re_dfa_t **pprVar33;" type_identifier (pointer_declarator "**pprVar33" * (pointer_declarator "*pprVar33" * identifier)) ;) (declaration "re_node_set *prVar34;" type_identifier (pointer_declarator "*prVar34" * identifier) ;) (declaration "uint *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "Idx *pIVar36;" type_identifier (pointer_declarator "*pIVar36" * identifier) ;) (declaration "re_node_set *set_00;" type_identifier (pointer_declarator "*set_00" * identifier) ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int *piVar37;" primitive_type (pointer_declarator "*piVar37" * identifier) ;) (declaration "Idx unaff_s2;" type_identifier identifier ;) (declaration "re_node_set *prVar38;" type_identifier (pointer_declarator "*prVar38" * identifier) ;) (declaration "re_node_set *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "undefined *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "Idx **unaff_s5;" type_identifier (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier)) ;) (declaration "undefined4 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "undefined *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "re_node_set *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "byte *pbVar41;" type_identifier (pointer_declarator "*pbVar41" * identifier) ;) (declaration "int iVar42;" primitive_type identifier ;) (declaration "re_node_set *prVar43;" type_identifier (pointer_declarator "*prVar43" * identifier) ;) (declaration "undefined *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "code *pcVar45;" type_identifier (pointer_declarator "*pcVar45" * identifier) ;) (declaration "re_dfa_t *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar46;" type_identifier (pointer_declarator "*pcVar46" * identifier) ;) (declaration "undefined4 in_stack_fffffeac;" type_identifier identifier ;) (declaration "int iStack_124;" primitive_type identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "undefined1 *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "re_node_set rStack_e4;" type_identifier identifier ;) (declaration "uint uStack_d8;" type_identifier identifier ;) (declaration "uint uStack_d4;" type_identifier identifier ;) (declaration "uint uStack_d0;" type_identifier identifier ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (declaration "uint uStack_c8;" type_identifier identifier ;) (declaration "re_node_set rStack_c4;" type_identifier identifier ;) (declaration "uint uStack_b8;" type_identifier identifier ;) (declaration "uint uStack_b4;" type_identifier identifier ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "uint uStack_a8;" type_identifier identifier ;) (declaration "re_dfa_t *prStack_a4;" type_identifier (pointer_declarator "*prStack_a4" * identifier) ;) (declaration "uint uStack_a0;" type_identifier identifier ;) (declaration "uint uStack_9c;" type_identifier identifier ;) (declaration "uint uStack_98;" type_identifier identifier ;) (declaration "uint uStack_94;" type_identifier identifier ;) (declaration "uint uStack_90;" type_identifier identifier ;) (declaration "uint uStack_8c;" type_identifier identifier ;) (declaration "uint uStack_88;" type_identifier identifier ;) (declaration "re_dfa_t *prStack_84;" type_identifier (pointer_declarator "*prStack_84" * identifier) ;) (declaration "int iStack_80;" primitive_type identifier ;) (declaration "re_node_set *prStack_7c;" type_identifier (pointer_declarator "*prStack_7c" * identifier) ;) (declaration "Idx IStack_78;" type_identifier identifier ;) (declaration "re_node_set *prStack_74;" type_identifier (pointer_declarator "*prStack_74" * identifier) ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "Idx **ppIStack_6c;" type_identifier (pointer_declarator "**ppIStack_6c" * (pointer_declarator "*ppIStack_6c" * identifier)) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "re_node_set *prStack_64;" type_identifier (pointer_declarator "*prStack_64" * identifier) ;) (declaration "re_dfa_t *prStack_60;" type_identifier (pointer_declarator "*prStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "re_node_set except_nodes;" type_identifier identifier ;) (expression_statement "puVar44 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar44 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "except_nodes.alloc = 0;" (assignment_expression "except_nodes.alloc = 0" (field_expression "except_nodes.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "except_nodes.nelem = 0;" (assignment_expression "except_nodes.nelem = 0" (field_expression "except_nodes.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "except_nodes.elems = (Idx *)0x0;" (assignment_expression "except_nodes.elems = (Idx *)0x0" (field_expression "except_nodes.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar38 = dfa->inveclosures + node;" (assignment_expression "prVar38 = dfa->inveclosures + node" identifier = (binary_expression "dfa->inveclosures + node" (field_expression "dfa->inveclosures" identifier -> field_identifier) + identifier)) ;) (expression_statement "prVar3 = *(re_node_set **)PTR___stack_chk_guard_00075be8;" (assignment_expression "prVar3 = *(re_node_set **)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(re_node_set **)PTR___stack_chk_guard_00075be8" * (cast_expression "(re_node_set **)PTR___stack_chk_guard_00075be8" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "prVar27 = (re_node_set *)prVar38->nelem;" (assignment_expression "prVar27 = (re_node_set *)prVar38->nelem" identifier = (cast_expression "(re_node_set *)prVar38->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar38->nelem" identifier -> field_identifier))) ;) (expression_statement "elem = (re_node_set *)node;" (assignment_expression "elem = (re_node_set *)node" identifier = (cast_expression "(re_node_set *)node" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar39 = PTR_LAB_00075920;" (assignment_expression "puVar39 = PTR_LAB_00075920" identifier = identifier) ;) (if_statement "if (0 < (int)prVar27) {\n    unaff_s7 = &except_nodes;\n    unaff_s0 = 0;\n    unaff_s5 = &prVar38->elems;\n    puVar39 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      iVar4 = prVar38->elems[unaff_s0];\n      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < (int)prVar27);\n    unaff_s2 = node;\n    unaff_s3 = dest_nodes;\n    unaff_s8 = dfa;\n    if (0 < (int)prVar27) {\n      iVar4 = 0;\n      set_00 = (re_node_set *)&dest_nodes->nelem;\n      prVar34 = (re_node_set *)&dest_nodes->elems;\n      prVar21 = (re_node_set *)&except_nodes.elems;\n      do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);\n    }\n  }" if (parenthesized_expression "(0 < (int)prVar27)" ( (binary_expression "0 < (int)prVar27" number_literal < (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    unaff_s7 = &except_nodes;\n    unaff_s0 = 0;\n    unaff_s5 = &prVar38->elems;\n    puVar39 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      iVar4 = prVar38->elems[unaff_s0];\n      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < (int)prVar27);\n    unaff_s2 = node;\n    unaff_s3 = dest_nodes;\n    unaff_s8 = dfa;\n    if (0 < (int)prVar27) {\n      iVar4 = 0;\n      set_00 = (re_node_set *)&dest_nodes->nelem;\n      prVar34 = (re_node_set *)&dest_nodes->elems;\n      prVar21 = (re_node_set *)&except_nodes.elems;\n      do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);\n    }\n  }" { (expression_statement "unaff_s7 = &except_nodes;" (assignment_expression "unaff_s7 = &except_nodes" identifier = (pointer_expression "&except_nodes" & identifier)) ;) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = &prVar38->elems;" (assignment_expression "unaff_s5 = &prVar38->elems" identifier = (pointer_expression "&prVar38->elems" & (field_expression "prVar38->elems" identifier -> field_identifier))) ;) (expression_statement "puVar39 = PTR_LAB_00075920 + 0x5230;" (assignment_expression "puVar39 = PTR_LAB_00075920 + 0x5230" identifier = (binary_expression "PTR_LAB_00075920 + 0x5230" identifier + number_literal)) ;) (expression_statement "unaff_s6 = PTR_LAB_00075920 + 0x6140;" (assignment_expression "unaff_s6 = PTR_LAB_00075920 + 0x6140" identifier = (binary_expression "PTR_LAB_00075920 + 0x6140" identifier + number_literal)) ;) (do_statement "do {\n      iVar4 = prVar38->elems[unaff_s0];\n      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < (int)prVar27);" do (compound_statement "{\n      iVar4 = prVar38->elems[unaff_s0];\n      if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    }" { (expression_statement "iVar4 = prVar38->elems[unaff_s0];" (assignment_expression "iVar4 = prVar38->elems[unaff_s0]" identifier = (subscript_expression "prVar38->elems[unaff_s0]" (field_expression "prVar38->elems" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if ((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)) {\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0))" ( (binary_expression "(node != iVar4) && ((dfa->nodes[iVar4].field_0x4 & 8) != 0)" (parenthesized_expression "(node != iVar4)" ( (binary_expression "node != iVar4" identifier != identifier) )) && (parenthesized_expression "((dfa->nodes[iVar4].field_0x4 & 8) != 0)" ( (binary_expression "(dfa->nodes[iVar4].field_0x4 & 8) != 0" (parenthesized_expression "(dfa->nodes[iVar4].field_0x4 & 8)" ( (binary_expression "dfa->nodes[iVar4].field_0x4 & 8" (field_expression "dfa->nodes[iVar4].field_0x4" (subscript_expression "dfa->nodes[iVar4]" (field_expression "dfa->nodes" identifier -> field_identifier) [ identifier ]) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        iVar32 = iVar4 * 0xc;\n        prVar21 = dfa->edests + iVar4;\n        pIVar36 = prVar21->elems;\n        prVar34 = (re_node_set *)*pIVar36;\n        elem = (re_node_set *)unaff_s5;\n        IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);\n        if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" { (expression_statement "iVar32 = iVar4 * 0xc;" (assignment_expression "iVar32 = iVar4 * 0xc" identifier = (binary_expression "iVar4 * 0xc" identifier * number_literal)) ;) (expression_statement "prVar21 = dfa->edests + iVar4;" (assignment_expression "prVar21 = dfa->edests + iVar4" identifier = (binary_expression "dfa->edests + iVar4" (field_expression "dfa->edests" identifier -> field_identifier) + identifier)) ;) (expression_statement "pIVar36 = prVar21->elems;" (assignment_expression "pIVar36 = prVar21->elems" identifier = (field_expression "prVar21->elems" identifier -> field_identifier)) ;) (expression_statement "prVar34 = (re_node_set *)*pIVar36;" (assignment_expression "prVar34 = (re_node_set *)*pIVar36" identifier = (cast_expression "(re_node_set *)*pIVar36" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pIVar36" * identifier))) ;) (expression_statement "elem = (re_node_set *)unaff_s5;" (assignment_expression "elem = (re_node_set *)unaff_s5" identifier = (cast_expression "(re_node_set *)unaff_s5" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34);" (assignment_expression "IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34)" identifier = (call_expression "re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34)" identifier (argument_list "(prVar27,(Idx)unaff_s5,prVar34)" ( identifier , (cast_expression "(Idx)unaff_s5" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if (prVar21->nelem < 2) {\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }" if (parenthesized_expression "(prVar21->nelem < 2)" ( (binary_expression "prVar21->nelem < 2" (field_expression "prVar21->nelem" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n          if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }\n        }" { (if_statement "if (IVar5 == 0) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }" if (parenthesized_expression "(IVar5 == 0)" ( (binary_expression "IVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) goto LAB_000488c0;\n          }" { (expression_statement "elem = (re_node_set *)&dest_nodes->elems;" (assignment_expression "elem = (re_node_set *)&dest_nodes->elems" identifier = (cast_expression "(re_node_set *)&dest_nodes->elems" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dest_nodes->elems" & (field_expression "dest_nodes->elems" identifier -> field_identifier)))) ;) (expression_statement "IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);" (assignment_expression "IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34)" identifier = (call_expression "re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34)" identifier (argument_list "((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34)" ( (cast_expression "(re_node_set *)dest_nodes->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "dest_nodes->nelem" identifier -> field_identifier)) , (cast_expression "(Idx)elem" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if (IVar5 != 0) goto LAB_000488c0;" if (parenthesized_expression "(IVar5 != 0)" ( (binary_expression "IVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000488c0;" goto statement_identifier ;)) })) }) (else_clause "else if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }" else (if_statement "if ((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)) {\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }\n        else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }" if (parenthesized_expression "((IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0))" ( (binary_expression "(IVar5 == 0) &&\n                (IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)" (parenthesized_expression "(IVar5 == 0)" ( (binary_expression "IVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0)" ( (comma_expression "IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   ), IVar5 != 0" (assignment_expression "IVar5 = re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   )" identifier = (call_expression "re_node_set_contains\n                                   ((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   )" identifier (argument_list "((re_node_set *)dest_nodes->nelem,(Idx)&dest_nodes->elems,prVar34\n                                   )" ( (cast_expression "(re_node_set *)dest_nodes->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "dest_nodes->nelem" identifier -> field_identifier)) , (binary_expression "(Idx)&dest_nodes->elems" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "dest_nodes->elems" identifier -> field_identifier)) , identifier )))) , (binary_expression "IVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000488c0:\n          prVar27 = dfa->inveclosures;\nLAB_000488c4:\n          elem = candidates;\n          rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));\n          if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }\n          prVar27 = (re_node_set *)prVar38->nelem;\n        }" { (labeled_statement "LAB_000488c0:\n          prVar27 = dfa->inveclosures;" statement_identifier : (expression_statement "prVar27 = dfa->inveclosures;" (assignment_expression "prVar27 = dfa->inveclosures" identifier = (field_expression "dfa->inveclosures" identifier -> field_identifier)) ;)) (labeled_statement "LAB_000488c4:\n          elem = candidates;" statement_identifier : (expression_statement "elem = candidates;" (assignment_expression "elem = candidates" identifier = identifier) ;)) (expression_statement "rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32));" (assignment_expression "rVar6 = re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32))" identifier = (call_expression "re_node_set_add_intersect\n                            (unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32))" identifier (argument_list "(unaff_s7,candidates,(re_node_set *)((int)&prVar27->alloc + iVar32))" ( identifier , identifier , (cast_expression "(re_node_set *)((int)&prVar27->alloc + iVar32)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar27->alloc + iVar32)" ( (binary_expression "(int)&prVar27->alloc + iVar32" (cast_expression "(int)&prVar27->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar27->alloc" & (field_expression "prVar27->alloc" identifier -> field_identifier))) + identifier) ))) )))) ;) (if_statement "if (rVar6 != _REG_NOERROR) {\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }" if (parenthesized_expression "(rVar6 != _REG_NOERROR)" ( (binary_expression "rVar6 != _REG_NOERROR" identifier != identifier) )) (compound_statement "{\n            (*(code *)PTR_free_00075bfc)(except_nodes.elems);\n            goto LAB_00048a80;\n          }" { (expression_statement "(*(code *)PTR_free_00075bfc)(except_nodes.elems);" (call_expression "(*(code *)PTR_free_00075bfc)(except_nodes.elems)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(except_nodes.elems)" ( (field_expression "except_nodes.elems" identifier . field_identifier) ))) ;) (goto_statement "goto LAB_00048a80;" goto statement_identifier ;) })) (expression_statement "prVar27 = (re_node_set *)prVar38->nelem;" (assignment_expression "prVar27 = (re_node_set *)prVar38->nelem" identifier = (cast_expression "(re_node_set *)prVar38->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar38->nelem" identifier -> field_identifier))) ;) }) (else_clause "else {\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }" else (compound_statement "{\n          prVar34 = (re_node_set *)pIVar36[1];\n          elem = (re_node_set *)unaff_s5;\n          if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }\n        }" { (expression_statement "prVar34 = (re_node_set *)pIVar36[1];" (assignment_expression "prVar34 = (re_node_set *)pIVar36[1]" identifier = (cast_expression "(re_node_set *)pIVar36[1]" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pIVar36[1]" identifier [ number_literal ]))) ;) (expression_statement "elem = (re_node_set *)unaff_s5;" (assignment_expression "elem = (re_node_set *)unaff_s5" identifier = (cast_expression "(re_node_set *)unaff_s5" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)) {\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }" if (parenthesized_expression "((0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0))" ( (binary_expression "(0 < (int)prVar34) &&\n             (IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)" (parenthesized_expression "(0 < (int)prVar34)" ( (binary_expression "0 < (int)prVar34" number_literal < (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0)" ( (comma_expression "IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34), IVar5 == 0" (assignment_expression "IVar5 = re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34)" identifier = (call_expression "re_node_set_contains(prVar27,(Idx)unaff_s5,prVar34)" identifier (argument_list "(prVar27,(Idx)unaff_s5,prVar34)" ( identifier , (cast_expression "(Idx)unaff_s5" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) , (binary_expression "IVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            elem = (re_node_set *)&dest_nodes->elems;\n            IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);\n            if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }\n          }" { (expression_statement "elem = (re_node_set *)&dest_nodes->elems;" (assignment_expression "elem = (re_node_set *)&dest_nodes->elems" identifier = (cast_expression "(re_node_set *)&dest_nodes->elems" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dest_nodes->elems" & (field_expression "dest_nodes->elems" identifier -> field_identifier)))) ;) (expression_statement "IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34);" (assignment_expression "IVar5 = re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34)" identifier = (call_expression "re_node_set_contains((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34)" identifier (argument_list "((re_node_set *)dest_nodes->nelem,(Idx)elem,prVar34)" ( (cast_expression "(re_node_set *)dest_nodes->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "dest_nodes->nelem" identifier -> field_identifier)) , (cast_expression "(Idx)elem" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if (IVar5 != 0) {\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }" if (parenthesized_expression "(IVar5 != 0)" ( (binary_expression "IVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              prVar27 = dfa->inveclosures;\n              goto LAB_000488c4;\n            }" { (expression_statement "prVar27 = dfa->inveclosures;" (assignment_expression "prVar27 = dfa->inveclosures" identifier = (field_expression "dfa->inveclosures" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000488c4;" goto statement_identifier ;) })) })) }))))) })) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s0 < (int)prVar27)" ( (binary_expression "unaff_s0 < (int)prVar27" identifier < (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "unaff_s2 = node;" (assignment_expression "unaff_s2 = node" identifier = identifier) ;) (expression_statement "unaff_s3 = dest_nodes;" (assignment_expression "unaff_s3 = dest_nodes" identifier = identifier) ;) (expression_statement "unaff_s8 = dfa;" (assignment_expression "unaff_s8 = dfa" identifier = identifier) ;) (if_statement "if (0 < (int)prVar27) {\n      iVar4 = 0;\n      set_00 = (re_node_set *)&dest_nodes->nelem;\n      prVar34 = (re_node_set *)&dest_nodes->elems;\n      prVar21 = (re_node_set *)&except_nodes.elems;\n      do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);\n    }" if (parenthesized_expression "(0 < (int)prVar27)" ( (binary_expression "0 < (int)prVar27" number_literal < (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar4 = 0;\n      set_00 = (re_node_set *)&dest_nodes->nelem;\n      prVar34 = (re_node_set *)&dest_nodes->elems;\n      prVar21 = (re_node_set *)&except_nodes.elems;\n      do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "set_00 = (re_node_set *)&dest_nodes->nelem;" (assignment_expression "set_00 = (re_node_set *)&dest_nodes->nelem" identifier = (cast_expression "(re_node_set *)&dest_nodes->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dest_nodes->nelem" & (field_expression "dest_nodes->nelem" identifier -> field_identifier)))) ;) (expression_statement "prVar34 = (re_node_set *)&dest_nodes->elems;" (assignment_expression "prVar34 = (re_node_set *)&dest_nodes->elems" identifier = (cast_expression "(re_node_set *)&dest_nodes->elems" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dest_nodes->elems" & (field_expression "dest_nodes->elems" identifier -> field_identifier)))) ;) (expression_statement "prVar21 = (re_node_set *)&except_nodes.elems;" (assignment_expression "prVar21 = (re_node_set *)&except_nodes.elems" identifier = (cast_expression "(re_node_set *)&except_nodes.elems" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&except_nodes.elems" & (field_expression "except_nodes.elems" identifier . field_identifier)))) ;) (do_statement "do {\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      } while (iVar4 < (int)prVar27);" do (compound_statement "{\n        prVar30 = (re_node_set *)prVar38->elems[iVar4];\n        prVar43 = prVar21;\n        IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);\n        elem = prVar21;\n        if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        prVar21 = prVar43;\n      }" { (expression_statement "prVar30 = (re_node_set *)prVar38->elems[iVar4];" (assignment_expression "prVar30 = (re_node_set *)prVar38->elems[iVar4]" identifier = (cast_expression "(re_node_set *)prVar38->elems[iVar4]" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "prVar38->elems[iVar4]" (field_expression "prVar38->elems" identifier -> field_identifier) [ identifier ]))) ;) (expression_statement "prVar43 = prVar21;" (assignment_expression "prVar43 = prVar21" identifier = identifier) ;) (expression_statement "IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30);" (assignment_expression "IVar5 = re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30)" identifier = (call_expression "re_node_set_contains((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30)" identifier (argument_list "((re_node_set *)except_nodes.nelem,(Idx)prVar21,prVar30)" ( (cast_expression "(re_node_set *)except_nodes.nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "except_nodes.nelem" identifier . field_identifier)) , (cast_expression "(Idx)prVar21" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "elem = prVar21;" (assignment_expression "elem = prVar21" identifier = identifier) ;) (if_statement "if (IVar5 == 0) {\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }" if (parenthesized_expression "(IVar5 == 0)" ( (binary_expression "IVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          set = (re_node_set *)dest_nodes->nelem;\n          prVar21 = prVar34;\n          IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);\n          prVar30 = (re_node_set *)(IVar5 + -1);\n          elem = prVar34;\n          prVar34 = prVar21;\n          if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }\n        }" { (expression_statement "set = (re_node_set *)dest_nodes->nelem;" (assignment_expression "set = (re_node_set *)dest_nodes->nelem" identifier = (cast_expression "(re_node_set *)dest_nodes->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "dest_nodes->nelem" identifier -> field_identifier))) ;) (expression_statement "prVar21 = prVar34;" (assignment_expression "prVar21 = prVar34" identifier = identifier) ;) (expression_statement "IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30);" (assignment_expression "IVar5 = re_node_set_contains(set,(Idx)prVar34,prVar30)" identifier = (call_expression "re_node_set_contains(set,(Idx)prVar34,prVar30)" identifier (argument_list "(set,(Idx)prVar34,prVar30)" ( identifier , (cast_expression "(Idx)prVar34" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "prVar30 = (re_node_set *)(IVar5 + -1);" (assignment_expression "prVar30 = (re_node_set *)(IVar5 + -1)" identifier = (cast_expression "(re_node_set *)(IVar5 + -1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(IVar5 + -1)" ( (binary_expression "IVar5 + -1" identifier + number_literal) )))) ;) (expression_statement "elem = prVar34;" (assignment_expression "elem = prVar34" identifier = identifier) ;) (expression_statement "prVar34 = prVar21;" (assignment_expression "prVar34 = prVar21" identifier = identifier) ;) (if_statement "if ((-1 < (int)prVar30) && ((int)prVar30 < (int)set)) {\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }" if (parenthesized_expression "((-1 < (int)prVar30) && ((int)prVar30 < (int)set))" ( (binary_expression "(-1 < (int)prVar30) && ((int)prVar30 < (int)set)" (parenthesized_expression "(-1 < (int)prVar30)" ( (binary_expression "-1 < (int)prVar30" number_literal < (cast_expression "(int)prVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)prVar30 < (int)set)" ( (binary_expression "(int)prVar30 < (int)set" (cast_expression "(int)prVar30" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)set" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n            dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);\n            re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);\n            prVar27 = (re_node_set *)prVar38->nelem;\n            elem = prVar21;\n          }" { (expression_statement "dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3);" (assignment_expression "dest_nodes->nelem = (Idx)((int)&set[-1].elems + 3)" (field_expression "dest_nodes->nelem" identifier -> field_identifier) = (call_expression "(Idx)((int)&set[-1].elems + 3)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)&set[-1].elems + 3)" ( (binary_expression "(int)&set[-1].elems + 3" (cast_expression "(int)&set[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&set[-1].elems" & (field_expression "set[-1].elems" (subscript_expression "set[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "re_node_set_remove_at(set_00,(Idx)prVar21,prVar30);" (call_expression "re_node_set_remove_at(set_00,(Idx)prVar21,prVar30)" identifier (argument_list "(set_00,(Idx)prVar21,prVar30)" ( identifier , (cast_expression "(Idx)prVar21" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "prVar27 = (re_node_set *)prVar38->nelem;" (assignment_expression "prVar27 = (re_node_set *)prVar38->nelem" identifier = (cast_expression "(re_node_set *)prVar38->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar38->nelem" identifier -> field_identifier))) ;) (expression_statement "elem = prVar21;" (assignment_expression "elem = prVar21" identifier = identifier) ;) })) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "prVar21 = prVar43;" (assignment_expression "prVar21 = prVar43" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 < (int)prVar27)" ( (binary_expression "iVar4 < (int)prVar27" identifier < (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) })) (expression_statement "(*(code *)PTR_free_00075bfc)(except_nodes.elems);" (call_expression "(*(code *)PTR_free_00075bfc)(except_nodes.elems)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(except_nodes.elems)" ( (field_expression "except_nodes.elems" identifier . field_identifier) ))) ;) (expression_statement "rVar6 = _REG_NOERROR;" (assignment_expression "rVar6 = _REG_NOERROR" identifier = identifier) ;) (expression_statement "node = unaff_s2;" (assignment_expression "node = unaff_s2" identifier = identifier) ;) (expression_statement "dest_nodes = unaff_s3;" (assignment_expression "dest_nodes = unaff_s3" identifier = identifier) ;) (expression_statement "dfa = unaff_s8;" (assignment_expression "dfa = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_00048a80:\n  if (prVar3 == *(re_node_set **)puVar44) {\n    return rVar6;\n  }" statement_identifier : (if_statement "if (prVar3 == *(re_node_set **)puVar44) {\n    return rVar6;\n  }" if (parenthesized_expression "(prVar3 == *(re_node_set **)puVar44)" ( (binary_expression "prVar3 == *(re_node_set **)puVar44" identifier == (pointer_expression "*(re_node_set **)puVar44" * (cast_expression "(re_node_set **)puVar44" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return rVar6;\n  }" { (return_statement "return rVar6;" return identifier ;) }))) (expression_statement "pcVar46 = build_trtable;" (assignment_expression "pcVar46 = build_trtable" identifier = identifier) ;) (expression_statement "puVar44 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar44 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar44 + 0x2d0f8);" (assignment_expression "piVar7 = *(int **)(puVar44 + 0x2d0f8)" identifier = (pointer_expression "*(int **)(puVar44 + 0x2d0f8)" * (cast_expression "(int **)(puVar44 + 0x2d0f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d0f8)" ( (binary_expression "puVar44 + 0x2d0f8" identifier + number_literal) ))))) ;) (expression_statement "prStack_84 = (re_dfa_t *)*piVar7;" (assignment_expression "prStack_84 = (re_dfa_t *)*piVar7" identifier = (cast_expression "(re_dfa_t *)*piVar7" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (expression_statement "prVar27 = elem;" (assignment_expression "prVar27 = elem" identifier = identifier) ;) (expression_statement "iStack_80 = unaff_s0;" (assignment_expression "iStack_80 = unaff_s0" identifier = identifier) ;) (expression_statement "prStack_7c = prVar38;" (assignment_expression "prStack_7c = prVar38" identifier = identifier) ;) (expression_statement "IStack_78 = node;" (assignment_expression "IStack_78 = node" identifier = identifier) ;) (expression_statement "prStack_74 = dest_nodes;" (assignment_expression "prStack_74 = dest_nodes" identifier = identifier) ;) (expression_statement "puStack_70 = puVar39;" (assignment_expression "puStack_70 = puVar39" identifier = identifier) ;) (expression_statement "ppIStack_6c = unaff_s5;" (assignment_expression "ppIStack_6c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_68 = unaff_s6;" (assignment_expression "puStack_68 = unaff_s6" identifier = identifier) ;) (expression_statement "prStack_64 = unaff_s7;" (assignment_expression "prStack_64 = unaff_s7" identifier = identifier) ;) (expression_statement "prStack_60 = dfa;" (assignment_expression "prStack_60 = dfa" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar46;" (assignment_expression "pcStack_5c = pcVar46" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar44 + 0x2d03c))(0x2c00);" (assignment_expression "iVar4 = (**(code **)(puVar44 + 0x2d03c))(0x2c00)" identifier = (call_expression "(**(code **)(puVar44 + 0x2d03c))(0x2c00)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d03c)" * (pointer_expression "*(code **)(puVar44 + 0x2d03c)" * (cast_expression "(code **)(puVar44 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d03c)" ( (binary_expression "puVar44 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "(0x2c00)" ( number_literal )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00048f5c;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00048f5c;" goto statement_identifier ;)) (expression_statement "pIVar36 = elem->elems;" (assignment_expression "pIVar36 = elem->elems" identifier = (field_expression "elem->elems" identifier -> field_identifier)) ;) (expression_statement "elem[3].elems = (Idx *)0x0;" (assignment_expression "elem[3].elems = (Idx *)0x0" (field_expression "elem[3].elems" (subscript_expression "elem[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar8 = (uint *)(iVar4 + 0xc00);" (assignment_expression "puVar8 = (uint *)(iVar4 + 0xc00)" identifier = (cast_expression "(uint *)(iVar4 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc00)" ( (binary_expression "iVar4 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "elem[4].alloc = 0;" (assignment_expression "elem[4].alloc = 0" (field_expression "elem[4].alloc" (subscript_expression "elem[4]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.alloc = 0;" (assignment_expression "rStack_e4.alloc = 0" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.nelem = 0;" (assignment_expression "rStack_e4.nelem = 0" (field_expression "rStack_e4.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.elems = (Idx *)0x0;" (assignment_expression "rStack_e4.elems = (Idx *)0x0" (field_expression "rStack_e4.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" identifier = number_literal) ;) (expression_statement "uStack_c8 = 0;" (assignment_expression "uStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)pIVar36) {\n    iVar32 = *(int *)(puVar44 + 0x2ce30);\n    iStack_124 = 0;\n    iVar9 = *(int *)(puVar44 + 0x2ce30);\n    prVar38 = (re_node_set *)0x0;\nLAB_00048bd4:\n    iVar19 = iStack_124 * 4;\n    pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2);\n    bVar1 = pbVar41[4];\n    uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));\n      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));\n      *ppIVar15 = (Idx *)prVar27;\nLAB_00048fc0:\n      IVar5 = rStack_e4.alloc;\n      if (uVar28 == 0) goto LAB_000490bc;\n      if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }\n      rStack_e4.alloc = 0;\n      rStack_e4.nelem = 0;\n      rStack_e4.elems = (Idx *)0x0;\n      uStack_d8 = 0;\n      uStack_d4 = 0;\n      uStack_d0 = 0;\n      uStack_cc = 0;\n      uStack_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    iStack_124 = iStack_124 + 1;\n    if ((int)pIVar36 <= iStack_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" if (parenthesized_expression "(0 < (int)pIVar36)" ( (binary_expression "0 < (int)pIVar36" number_literal < (cast_expression "(int)pIVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar32 = *(int *)(puVar44 + 0x2ce30);\n    iStack_124 = 0;\n    iVar9 = *(int *)(puVar44 + 0x2ce30);\n    prVar38 = (re_node_set *)0x0;\nLAB_00048bd4:\n    iVar19 = iStack_124 * 4;\n    pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2);\n    bVar1 = pbVar41[4];\n    uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16;\n    if (bVar1 == 1) {\n      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));\n      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));\n      *ppIVar15 = (Idx *)prVar27;\nLAB_00048fc0:\n      IVar5 = rStack_e4.alloc;\n      if (uVar28 == 0) goto LAB_000490bc;\n      if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }\n      rStack_e4.alloc = 0;\n      rStack_e4.nelem = 0;\n      rStack_e4.elems = (Idx *)0x0;\n      uStack_d8 = 0;\n      uStack_d4 = 0;\n      uStack_d0 = 0;\n      uStack_cc = 0;\n      uStack_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    iStack_124 = iStack_124 + 1;\n    if ((int)pIVar36 <= iStack_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" { (expression_statement "iVar32 = *(int *)(puVar44 + 0x2ce30);" (assignment_expression "iVar32 = *(int *)(puVar44 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar44 + 0x2ce30)" * (cast_expression "(int *)(puVar44 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar44 + 0x2ce30)" ( (binary_expression "puVar44 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "iStack_124 = 0;" (assignment_expression "iStack_124 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(puVar44 + 0x2ce30);" (assignment_expression "iVar9 = *(int *)(puVar44 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar44 + 0x2ce30)" * (cast_expression "(int *)(puVar44 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar44 + 0x2ce30)" ( (binary_expression "puVar44 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "prVar38 = (re_node_set *)0x0;" (assignment_expression "prVar38 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00048bd4:\n    iVar19 = iStack_124 * 4;" statement_identifier : (expression_statement "iVar19 = iStack_124 * 4;" (assignment_expression "iVar19 = iStack_124 * 4" identifier = (binary_expression "iStack_124 * 4" identifier * number_literal)) ;)) (expression_statement "pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2);" (assignment_expression "pbVar41 = (byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2)" identifier = (cast_expression "(byte *)((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2)" ( (binary_expression "(Idx *)prVar3->alloc + *(int *)(elem[1].alloc + iVar19) * 2" (cast_expression "(Idx *)prVar3->alloc" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar3->alloc" identifier -> field_identifier)) + (binary_expression "*(int *)(elem[1].alloc + iVar19) * 2" (pointer_expression "*(int *)(elem[1].alloc + iVar19)" * (cast_expression "(int *)(elem[1].alloc + iVar19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(elem[1].alloc + iVar19)" ( (binary_expression "elem[1].alloc + iVar19" (field_expression "elem[1].alloc" (subscript_expression "elem[1]" identifier [ number_literal ]) . field_identifier) + identifier) )))) * number_literal)) )))) ;) (expression_statement "bVar1 = pbVar41[4];" (assignment_expression "bVar1 = pbVar41[4]" identifier = (subscript_expression "pbVar41[4]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16;" (assignment_expression "uVar28 = (uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16" identifier = (binary_expression "(uint)(*(int *)(pbVar41 + 4) << 8) >> 0x16" (call_expression "(uint)(*(int *)(pbVar41 + 4) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pbVar41 + 4) << 8)" ( (binary_expression "*(int *)(pbVar41 + 4) << 8" (pointer_expression "*(int *)(pbVar41 + 4)" * (cast_expression "(int *)(pbVar41 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar41 + 4)" ( (binary_expression "pbVar41 + 4" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) (if_statement "if (bVar1 == 1) {\n      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));\n      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));\n      *ppIVar15 = (Idx *)prVar27;\nLAB_00048fc0:\n      IVar5 = rStack_e4.alloc;\n      if (uVar28 == 0) goto LAB_000490bc;\n      if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }\n      rStack_e4.alloc = 0;\n      rStack_e4.nelem = 0;\n      rStack_e4.elems = (Idx *)0x0;\n      uStack_d8 = 0;\n      uStack_d4 = 0;\n      uStack_d0 = 0;\n      uStack_cc = 0;\n      uStack_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n      ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));\n      prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));\n      *ppIVar15 = (Idx *)prVar27;\nLAB_00048fc0:\n      IVar5 = rStack_e4.alloc;\n      if (uVar28 == 0) goto LAB_000490bc;\n      if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }\n      rStack_e4.alloc = 0;\n      rStack_e4.nelem = 0;\n      rStack_e4.elems = (Idx *)0x0;\n      uStack_d8 = 0;\n      uStack_d4 = 0;\n      uStack_d0 = 0;\n      uStack_cc = 0;\n      uStack_c8 = 0;\n    }" { (expression_statement "ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5));" (assignment_expression "ppIVar15 = (Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5))" identifier = (cast_expression "(Idx **)(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5))" ( (type_descriptor "Idx **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5))" ( (binary_expression "&rStack_e4.alloc + ((int)(uint)*pbVar41 >> 5)" (pointer_expression "&rStack_e4.alloc" & (field_expression "rStack_e4.alloc" identifier . field_identifier)) + (parenthesized_expression "((int)(uint)*pbVar41 >> 5)" ( (binary_expression "(int)(uint)*pbVar41 >> 5" (binary_expression "(int)(uint)*pbVar41" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ))) )))) ;) (expression_statement "prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f));" (assignment_expression "prVar27 = (re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f))" identifier = (cast_expression "(re_node_set *)((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f))" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f))" ( (binary_expression "(uint)*ppIVar15 | 1 << (*pbVar41 & 0x1f)" (binary_expression "(uint)*ppIVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (binary_expression "1 << (*pbVar41 & 0x1f)" number_literal << (parenthesized_expression "(*pbVar41 & 0x1f)" ( (binary_expression "*pbVar41 & 0x1f" (pointer_expression "*pbVar41" * identifier) & number_literal) )))) )))) ;) (expression_statement "*ppIVar15 = (Idx *)prVar27;" (assignment_expression "*ppIVar15 = (Idx *)prVar27" (pointer_expression "*ppIVar15" * identifier) = (cast_expression "(Idx *)prVar27" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00048fc0:\n      IVar5 = rStack_e4.alloc;" statement_identifier : (expression_statement "IVar5 = rStack_e4.alloc;" (assignment_expression "IVar5 = rStack_e4.alloc" identifier = (field_expression "rStack_e4.alloc" identifier . field_identifier)) ;)) (if_statement "if (uVar28 == 0) goto LAB_000490bc;" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000490bc;" goto statement_identifier ;)) (if_statement "if ((uVar28 & 0x20) == 0) {\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }\n      else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }" if (parenthesized_expression "((uVar28 & 0x20) == 0)" ( (binary_expression "(uVar28 & 0x20) == 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar28 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }\n        if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        rStack_e4.alloc = 0;\n      }" { (if_statement "if ((uVar28 & 0x80) != 0) goto LAB_00049388;" if (parenthesized_expression "((uVar28 & 0x80) != 0)" ( (binary_expression "(uVar28 & 0x80) != 0" (parenthesized_expression "(uVar28 & 0x80)" ( (binary_expression "uVar28 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00049388;" goto statement_identifier ;)) (labeled_statement "LAB_00048fdc:\n        if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }" statement_identifier : (if_statement "if ((uVar28 & 4) != 0) {\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }" if (parenthesized_expression "((uVar28 & 4) != 0)" ( (binary_expression "(uVar28 & 4) != 0" (parenthesized_expression "(uVar28 & 4)" ( (binary_expression "uVar28 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }\n          if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }\n          if (uVar24 == 0) goto LAB_00048c28;\n        }" { (if_statement "if (bVar1 == 1) {\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }\n          else {\n            pIVar17 = prVar3[7].elems;\n          }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n            if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;\n            pIVar17 = prVar3[7].elems;\n          }" { (if_statement "if ((*(uint *)(pbVar41 + 4) & 0x200) == 0) goto LAB_00049388;" if (parenthesized_expression "((*(uint *)(pbVar41 + 4) & 0x200) == 0)" ( (binary_expression "(*(uint *)(pbVar41 + 4) & 0x200) == 0" (parenthesized_expression "(*(uint *)(pbVar41 + 4) & 0x200)" ( (binary_expression "*(uint *)(pbVar41 + 4) & 0x200" (pointer_expression "*(uint *)(pbVar41 + 4)" * (cast_expression "(uint *)(pbVar41 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar41 + 4)" ( (binary_expression "pbVar41 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00049388;" goto statement_identifier ;)) (expression_statement "pIVar17 = prVar3[7].elems;" (assignment_expression "pIVar17 = prVar3[7].elems" identifier = (field_expression "prVar3[7].elems" (subscript_expression "prVar3[7]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n            pIVar17 = prVar3[7].elems;\n          }" else (compound_statement "{\n            pIVar17 = prVar3[7].elems;\n          }" { (expression_statement "pIVar17 = prVar3[7].elems;" (assignment_expression "pIVar17 = prVar3[7].elems" identifier = (field_expression "prVar3[7].elems" (subscript_expression "prVar3[7]" identifier [ number_literal ]) . field_identifier)) ;) }))) (if_statement "if ((int)pIVar17 < 2) {\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }" if (parenthesized_expression "((int)pIVar17 < 2)" ( (binary_expression "(int)pIVar17 < 2" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }" { (expression_statement "prVar21 = prVar3 + 8;" (assignment_expression "prVar21 = prVar3 + 8" identifier = (binary_expression "prVar3 + 8" identifier + number_literal)) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "prVar34 = &rStack_e4;" (assignment_expression "prVar34 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (do_statement "do {\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);" do (compound_statement "{\n              pIVar14 = &prVar34->nelem;\n              pIVar17 = &prVar21->alloc;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);\n              prVar34->alloc = (Idx)prVar27;\n              uVar24 = uVar24 | (uint)prVar27;\n              prVar34 = (re_node_set *)pIVar14;\n            }" { (expression_statement "pIVar14 = &prVar34->nelem;" (assignment_expression "pIVar14 = &prVar34->nelem" identifier = (pointer_expression "&prVar34->nelem" & (field_expression "prVar34->nelem" identifier -> field_identifier))) ;) (expression_statement "pIVar17 = &prVar21->alloc;" (assignment_expression "pIVar17 = &prVar21->alloc" identifier = (pointer_expression "&prVar21->alloc" & (field_expression "prVar21->alloc" identifier -> field_identifier))) ;) (expression_statement "prVar21 = (re_node_set *)&prVar21->nelem;" (assignment_expression "prVar21 = (re_node_set *)&prVar21->nelem" identifier = (cast_expression "(re_node_set *)&prVar21->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar21->nelem" & (field_expression "prVar21->nelem" identifier -> field_identifier)))) ;) (expression_statement "prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17);" (assignment_expression "prVar27 = (re_node_set *)((uint)prVar34->alloc & *pIVar17)" identifier = (cast_expression "(re_node_set *)((uint)prVar34->alloc & *pIVar17)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar34->alloc & *pIVar17)" ( (binary_expression "(uint)prVar34->alloc & *pIVar17" (cast_expression "(uint)prVar34->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar34->alloc" identifier -> field_identifier)) & (pointer_expression "*pIVar17" * identifier)) )))) ;) (expression_statement "prVar34->alloc = (Idx)prVar27;" (assignment_expression "prVar34->alloc = (Idx)prVar27" (field_expression "prVar34->alloc" identifier -> field_identifier) = (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "uVar24 = uVar24 | (uint)prVar27;" (assignment_expression "uVar24 = uVar24 | (uint)prVar27" identifier = (binary_expression "uVar24 | (uint)prVar27" identifier | (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "prVar34 = (re_node_set *)pIVar14;" (assignment_expression "prVar34 = (re_node_set *)pIVar14" identifier = (cast_expression "(re_node_set *)pIVar14" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_c4 != (re_node_set *)pIVar14)" ( (binary_expression "&rStack_c4 != (re_node_set *)pIVar14" (pointer_expression "&rStack_c4" & identifier) != (cast_expression "(re_node_set *)pIVar14" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) }) (else_clause "else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }" else (compound_statement "{\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar21 = prVar3 + 8;\n            uVar24 = 0;\n            prVar34 = &rStack_e4;\n            do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);\n          }" { (expression_statement "puVar35 = (uint *)prVar3[5].alloc;" (assignment_expression "puVar35 = (uint *)prVar3[5].alloc" identifier = (cast_expression "(uint *)prVar3[5].alloc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar3[5].alloc" (subscript_expression "prVar3[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "prVar21 = prVar3 + 8;" (assignment_expression "prVar21 = prVar3 + 8" identifier = (binary_expression "prVar3 + 8" identifier + number_literal)) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "prVar34 = &rStack_e4;" (assignment_expression "prVar34 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (do_statement "do {\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            } while (&rStack_c4 != prVar27);" do (compound_statement "{\n              prVar27 = (re_node_set *)&prVar34->nelem;\n              uVar16 = *puVar35;\n              pIVar17 = &prVar21->alloc;\n              puVar35 = puVar35 + 1;\n              prVar21 = (re_node_set *)&prVar21->nelem;\n              pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);\n              prVar34->alloc = (Idx)pIVar17;\n              uVar24 = uVar24 | (uint)pIVar17;\n              prVar34 = prVar27;\n            }" { (expression_statement "prVar27 = (re_node_set *)&prVar34->nelem;" (assignment_expression "prVar27 = (re_node_set *)&prVar34->nelem" identifier = (cast_expression "(re_node_set *)&prVar34->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar34->nelem" & (field_expression "prVar34->nelem" identifier -> field_identifier)))) ;) (expression_statement "uVar16 = *puVar35;" (assignment_expression "uVar16 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "pIVar17 = &prVar21->alloc;" (assignment_expression "pIVar17 = &prVar21->alloc" identifier = (pointer_expression "&prVar21->alloc" & (field_expression "prVar21->alloc" identifier -> field_identifier))) ;) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "prVar21 = (re_node_set *)&prVar21->nelem;" (assignment_expression "prVar21 = (re_node_set *)&prVar21->nelem" identifier = (cast_expression "(re_node_set *)&prVar21->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar21->nelem" & (field_expression "prVar21->nelem" identifier -> field_identifier)))) ;) (expression_statement "pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc);" (assignment_expression "pIVar17 = (Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc)" identifier = (cast_expression "(Idx *)((~uVar16 | *pIVar17) & (uint)prVar34->alloc)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((~uVar16 | *pIVar17) & (uint)prVar34->alloc)" ( (binary_expression "(~uVar16 | *pIVar17) & (uint)prVar34->alloc" (parenthesized_expression "(~uVar16 | *pIVar17)" ( (binary_expression "~uVar16 | *pIVar17" (unary_expression "~uVar16" ~ identifier) | (pointer_expression "*pIVar17" * identifier)) )) & (cast_expression "(uint)prVar34->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar34->alloc" identifier -> field_identifier))) )))) ;) (expression_statement "prVar34->alloc = (Idx)pIVar17;" (assignment_expression "prVar34->alloc = (Idx)pIVar17" (field_expression "prVar34->alloc" identifier -> field_identifier) = (cast_expression "(Idx)pIVar17" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "uVar24 = uVar24 | (uint)pIVar17;" (assignment_expression "uVar24 = uVar24 | (uint)pIVar17" identifier = (binary_expression "uVar24 | (uint)pIVar17" identifier | (cast_expression "(uint)pIVar17" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "prVar34 = prVar27;" (assignment_expression "prVar34 = prVar27" identifier = identifier) ;) }) while (parenthesized_expression "(&rStack_c4 != prVar27)" ( (binary_expression "&rStack_c4 != prVar27" (pointer_expression "&rStack_c4" & identifier) != identifier) )) ;) }))) (if_statement "if (uVar24 == 0) goto LAB_00048c28;" if (parenthesized_expression "(uVar24 == 0)" ( (binary_expression "uVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) }))) (if_statement "if ((uVar28 & 8) == 0) {\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }" if (parenthesized_expression "((uVar28 & 8) == 0)" ( (binary_expression "(uVar28 & 8) == 0" (parenthesized_expression "(uVar28 & 8)" ( (binary_expression "uVar28 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000490bc:\n          prVar34 = (re_node_set *)0x0;\n          if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }\n          iStack_118 = (int)prVar38 * 2;\n          if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }\n          pIVar36 = elem->elems;\n          goto LAB_00048c28;\n        }" { (labeled_statement "LAB_000490bc:\n          prVar34 = (re_node_set *)0x0;" statement_identifier : (expression_statement "prVar34 = (re_node_set *)0x0;" (assignment_expression "prVar34 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (0 < (int)prVar38) {\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }" if (parenthesized_expression "(0 < (int)prVar38)" ( (binary_expression "0 < (int)prVar38" number_literal < (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            prVar34 = (re_node_set *)0x0;\n            puVar35 = puVar8;\n            do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);\n          }" { (expression_statement "prVar34 = (re_node_set *)0x0;" (assignment_expression "prVar34 = (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 "puVar35 = puVar8;" (assignment_expression "puVar35 = puVar8" identifier = identifier) ;) (do_statement "do {\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            } while ((int)prVar34 < (int)prVar38);" do (compound_statement "{\n              prVar27 = (re_node_set *)((int)prVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }\n              puVar35 = puVar35 + 8;\n              prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);\n            }" { (expression_statement "prVar27 = (re_node_set *)((int)prVar34 * 0x20);" (assignment_expression "prVar27 = (re_node_set *)((int)prVar34 * 0x20)" identifier = (cast_expression "(re_node_set *)((int)prVar34 * 0x20)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar34 * 0x20)" ( (binary_expression "(int)prVar34 * 0x20" (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)) {\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }" if (parenthesized_expression "((bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0))" ( (binary_expression "(bVar1 != 1) ||\n                 (((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "(((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0)" ( (binary_expression "((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)\n                  != 0" (parenthesized_expression "((puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1)" ( (binary_expression "(puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f) & 1" (binary_expression "(puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8] >> (*pbVar41 & 0x1f)" (subscript_expression "(puVar8 + ((int)(uint)*pbVar41 >> 5))[(int)prVar34 * 8]" (parenthesized_expression "(puVar8 + ((int)(uint)*pbVar41 >> 5))" ( (binary_expression "puVar8 + ((int)(uint)*pbVar41 >> 5)" identifier + (parenthesized_expression "((int)(uint)*pbVar41 >> 5)" ( (binary_expression "(int)(uint)*pbVar41 >> 5" (binary_expression "(int)(uint)*pbVar41" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ))) )) [ (binary_expression "(int)prVar34 * 8" (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) >> (parenthesized_expression "(*pbVar41 & 0x1f)" ( (binary_expression "*pbVar41 & 0x1f" (pointer_expression "*pbVar41" * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                uVar28 = 0;\n                prVar27 = &rStack_e4;\n                prVar21 = &rStack_c4;\n                puVar29 = puVar35;\n                do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);\n                prVar27 = &rStack_e4;\n                if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }\n              }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "prVar27 = &rStack_e4;" (assignment_expression "prVar27 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (expression_statement "prVar21 = &rStack_c4;" (assignment_expression "prVar21 = &rStack_c4" identifier = (pointer_expression "&rStack_c4" & identifier)) ;) (expression_statement "puVar29 = puVar35;" (assignment_expression "puVar29 = puVar35" identifier = identifier) ;) (do_statement "do {\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                } while (&rStack_c4 != (re_node_set *)pIVar36);" do (compound_statement "{\n                  pIVar36 = &prVar27->nelem;\n                  uVar24 = *puVar29;\n                  puVar29 = puVar29 + 1;\n                  uVar24 = (uint)prVar27->alloc & uVar24;\n                  prVar21->alloc = uVar24;\n                  uVar28 = uVar28 | uVar24;\n                  prVar27 = (re_node_set *)pIVar36;\n                  prVar21 = (re_node_set *)&prVar21->nelem;\n                }" { (expression_statement "pIVar36 = &prVar27->nelem;" (assignment_expression "pIVar36 = &prVar27->nelem" identifier = (pointer_expression "&prVar27->nelem" & (field_expression "prVar27->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar24 = *puVar29;" (assignment_expression "uVar24 = *puVar29" identifier = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "uVar24 = (uint)prVar27->alloc & uVar24;" (assignment_expression "uVar24 = (uint)prVar27->alloc & uVar24" identifier = (binary_expression "(uint)prVar27->alloc & uVar24" (cast_expression "(uint)prVar27->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar27->alloc" identifier -> field_identifier)) & identifier)) ;) (expression_statement "prVar21->alloc = uVar24;" (assignment_expression "prVar21->alloc = uVar24" (field_expression "prVar21->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar28 = uVar28 | uVar24;" (assignment_expression "uVar28 = uVar28 | uVar24" identifier = (binary_expression "uVar28 | uVar24" identifier | identifier)) ;) (expression_statement "prVar27 = (re_node_set *)pIVar36;" (assignment_expression "prVar27 = (re_node_set *)pIVar36" identifier = (cast_expression "(re_node_set *)pIVar36" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar21 = (re_node_set *)&prVar21->nelem;" (assignment_expression "prVar21 = (re_node_set *)&prVar21->nelem" identifier = (cast_expression "(re_node_set *)&prVar21->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar21->nelem" & (field_expression "prVar21->nelem" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(&rStack_c4 != (re_node_set *)pIVar36)" ( (binary_expression "&rStack_c4 != (re_node_set *)pIVar36" (pointer_expression "&rStack_c4" & identifier) != (cast_expression "(re_node_set *)pIVar36" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "prVar27 = &rStack_e4;" (assignment_expression "prVar27 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (if_statement "if (uVar28 != 0) {\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar24 = 0;\n                  uVar28 = 0;\n                  puVar29 = puVar35;\n                  pprVar33 = &prStack_a4;\n                  do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);\n                  prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);\n                  if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }\n                  prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);\n                  iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);\n                  if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar24 == 0) break;\n                }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar29 = puVar35;" (assignment_expression "puVar29 = puVar35" identifier = identifier) ;) (expression_statement "pprVar33 = &prStack_a4;" (assignment_expression "pprVar33 = &prStack_a4" identifier = (pointer_expression "&prStack_a4" & identifier)) ;) (do_statement "do {\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  } while (puVar35 + 8 != puVar29);" do (compound_statement "{\n                    uVar16 = *puVar29;\n                    puVar29 = puVar29 + 1;\n                    prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);\n                    pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);\n                    *pprVar33 = prVar20;\n                    prVar27->alloc = (Idx)pIVar36;\n                    uVar28 = uVar28 | (uint)prVar20;\n                    uVar24 = uVar24 | (uint)pIVar36;\n                    prVar27 = (re_node_set *)&prVar27->nelem;\n                    pprVar33 = pprVar33 + 1;\n                  }" { (expression_statement "uVar16 = *puVar29;" (assignment_expression "uVar16 = *puVar29" identifier = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16);" (assignment_expression "prVar20 = (re_dfa_t *)(~(uint)prVar27->alloc & uVar16)" identifier = (cast_expression "(re_dfa_t *)(~(uint)prVar27->alloc & uVar16)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)prVar27->alloc & uVar16)" ( (binary_expression "~(uint)prVar27->alloc & uVar16" (unary_expression "~(uint)prVar27->alloc" ~ (cast_expression "(uint)prVar27->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar27->alloc" identifier -> field_identifier))) & identifier) )))) ;) (expression_statement "pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc);" (assignment_expression "pIVar36 = (Idx *)(~uVar16 & (uint)prVar27->alloc)" identifier = (cast_expression "(Idx *)(~uVar16 & (uint)prVar27->alloc)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~uVar16 & (uint)prVar27->alloc)" ( (binary_expression "~uVar16 & (uint)prVar27->alloc" (unary_expression "~uVar16" ~ identifier) & (cast_expression "(uint)prVar27->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar27->alloc" identifier -> field_identifier))) )))) ;) (expression_statement "*pprVar33 = prVar20;" (assignment_expression "*pprVar33 = prVar20" (pointer_expression "*pprVar33" * identifier) = identifier) ;) (expression_statement "prVar27->alloc = (Idx)pIVar36;" (assignment_expression "prVar27->alloc = (Idx)pIVar36" (field_expression "prVar27->alloc" identifier -> field_identifier) = (cast_expression "(Idx)pIVar36" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "uVar28 = uVar28 | (uint)prVar20;" (assignment_expression "uVar28 = uVar28 | (uint)prVar20" identifier = (binary_expression "uVar28 | (uint)prVar20" identifier | (cast_expression "(uint)prVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar24 = uVar24 | (uint)pIVar36;" (assignment_expression "uVar24 = uVar24 | (uint)pIVar36" identifier = (binary_expression "uVar24 | (uint)pIVar36" identifier | (cast_expression "(uint)pIVar36" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "prVar27 = (re_node_set *)&prVar27->nelem;" (assignment_expression "prVar27 = (re_node_set *)&prVar27->nelem" identifier = (cast_expression "(re_node_set *)&prVar27->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar27->nelem" & (field_expression "prVar27->nelem" identifier -> field_identifier)))) ;) (expression_statement "pprVar33 = pprVar33 + 1;" (assignment_expression "pprVar33 = pprVar33 + 1" identifier = (binary_expression "pprVar33 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar35 + 8 != puVar29)" ( (binary_expression "puVar35 + 8 != puVar29" (binary_expression "puVar35 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc);" (assignment_expression "prVar21 = (re_node_set *)(iVar4 + (int)prVar34 * 0xc)" identifier = (cast_expression "(re_node_set *)(iVar4 + (int)prVar34 * 0xc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (int)prVar34 * 0xc)" ( (binary_expression "iVar4 + (int)prVar34 * 0xc" identifier + (binary_expression "(int)prVar34 * 0xc" (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (uVar28 != 0) {\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                    iStack_118 = (int)prVar38 * 2;\n                    puVar29 = puVar8 + (int)prVar38 * 8;\n                    *puVar29 = (uint)prStack_a4;\n                    puVar29[1] = uStack_a0;\n                    puVar29[2] = uStack_9c;\n                    puVar29[3] = uStack_98;\n                    puVar29[4] = uStack_94;\n                    puVar29[5] = uStack_90;\n                    puVar29[6] = uStack_8c;\n                    puVar29[7] = uStack_88;\n                    puVar35[1] = rStack_c4.nelem;\n                    puVar35[2] = (uint)rStack_c4.elems;\n                    *puVar35 = rStack_c4.alloc;\n                    puVar35[3] = uStack_b8;\n                    puVar35[4] = uStack_b4;\n                    puVar35[5] = uStack_b0;\n                    puVar35[6] = uStack_ac;\n                    puVar35[7] = uStack_a8;\n                    prVar27 = prVar21;\n                    iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);\n                    if (iVar23 != 0) goto LAB_000493b8;\n                    prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n                  }" { (expression_statement "iStack_118 = (int)prVar38 * 2;" (assignment_expression "iStack_118 = (int)prVar38 * 2" identifier = (binary_expression "(int)prVar38 * 2" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar29 = puVar8 + (int)prVar38 * 8;" (assignment_expression "puVar29 = puVar8 + (int)prVar38 * 8" identifier = (binary_expression "puVar8 + (int)prVar38 * 8" identifier + (binary_expression "(int)prVar38 * 8" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar29 = (uint)prStack_a4;" (assignment_expression "*puVar29 = (uint)prStack_a4" (pointer_expression "*puVar29" * identifier) = (cast_expression "(uint)prStack_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar29[1] = uStack_a0;" (assignment_expression "puVar29[1] = uStack_a0" (subscript_expression "puVar29[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[2] = uStack_9c;" (assignment_expression "puVar29[2] = uStack_9c" (subscript_expression "puVar29[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[3] = uStack_98;" (assignment_expression "puVar29[3] = uStack_98" (subscript_expression "puVar29[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[4] = uStack_94;" (assignment_expression "puVar29[4] = uStack_94" (subscript_expression "puVar29[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[5] = uStack_90;" (assignment_expression "puVar29[5] = uStack_90" (subscript_expression "puVar29[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[6] = uStack_8c;" (assignment_expression "puVar29[6] = uStack_8c" (subscript_expression "puVar29[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[7] = uStack_88;" (assignment_expression "puVar29[7] = uStack_88" (subscript_expression "puVar29[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[1] = rStack_c4.nelem;" (assignment_expression "puVar35[1] = rStack_c4.nelem" (subscript_expression "puVar35[1]" identifier [ number_literal ]) = (field_expression "rStack_c4.nelem" identifier . field_identifier)) ;) (expression_statement "puVar35[2] = (uint)rStack_c4.elems;" (assignment_expression "puVar35[2] = (uint)rStack_c4.elems" (subscript_expression "puVar35[2]" identifier [ number_literal ]) = (cast_expression "(uint)rStack_c4.elems" ( (type_descriptor "uint" type_identifier) ) (field_expression "rStack_c4.elems" identifier . field_identifier))) ;) (expression_statement "*puVar35 = rStack_c4.alloc;" (assignment_expression "*puVar35 = rStack_c4.alloc" (pointer_expression "*puVar35" * identifier) = (field_expression "rStack_c4.alloc" identifier . field_identifier)) ;) (expression_statement "puVar35[3] = uStack_b8;" (assignment_expression "puVar35[3] = uStack_b8" (subscript_expression "puVar35[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[4] = uStack_b4;" (assignment_expression "puVar35[4] = uStack_b4" (subscript_expression "puVar35[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[5] = uStack_b0;" (assignment_expression "puVar35[5] = uStack_b0" (subscript_expression "puVar35[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[6] = uStack_ac;" (assignment_expression "puVar35[6] = uStack_ac" (subscript_expression "puVar35[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[7] = uStack_a8;" (assignment_expression "puVar35[7] = uStack_a8" (subscript_expression "puVar35[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "prVar27 = prVar21;" (assignment_expression "prVar27 = prVar21" identifier = identifier) ;) (expression_statement "iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc);" (assignment_expression "iVar23 = (*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc)" identifier = (call_expression "(*(code *)(iVar9 + 0x69e0))(iVar4 + (int)prVar38 * 0xc)" (parenthesized_expression "(*(code *)(iVar9 + 0x69e0))" ( (pointer_expression "*(code *)(iVar9 + 0x69e0)" * (cast_expression "(code *)(iVar9 + 0x69e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x69e0)" ( (binary_expression "iVar9 + 0x69e0" identifier + number_literal) )))) )) (argument_list "(iVar4 + (int)prVar38 * 0xc)" ( (binary_expression "iVar4 + (int)prVar38 * 0xc" identifier + (binary_expression "(int)prVar38 * 0xc" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (iVar23 != 0) goto LAB_000493b8;" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000493b8;" goto statement_identifier ;)) (expression_statement "prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);" (assignment_expression "prVar38 = (re_node_set *)((int)&prVar38->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar38->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar38->alloc + 1)" ( (binary_expression "(int)&prVar38->alloc + 1" (cast_expression "(int)&prVar38->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->alloc" & (field_expression "prVar38->alloc" identifier -> field_identifier))) + number_literal) )))) ;) })) (expression_statement "prVar27 = *(re_node_set **)(elem[1].alloc + iVar19);" (assignment_expression "prVar27 = *(re_node_set **)(elem[1].alloc + iVar19)" identifier = (pointer_expression "*(re_node_set **)(elem[1].alloc + iVar19)" * (cast_expression "(re_node_set **)(elem[1].alloc + iVar19)" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(elem[1].alloc + iVar19)" ( (binary_expression "elem[1].alloc + iVar19" (field_expression "elem[1].alloc" (subscript_expression "elem[1]" identifier [ number_literal ]) . field_identifier) + identifier) ))))) ;) (expression_statement "iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21);" (assignment_expression "iVar23 = (*(code *)(iVar32 + 0x33f8))(prVar21)" identifier = (call_expression "(*(code *)(iVar32 + 0x33f8))(prVar21)" (parenthesized_expression "(*(code *)(iVar32 + 0x33f8))" ( (pointer_expression "*(code *)(iVar32 + 0x33f8)" * (cast_expression "(code *)(iVar32 + 0x33f8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + 0x33f8)" ( (binary_expression "iVar32 + 0x33f8" identifier + number_literal) )))) )) (argument_list "(prVar21)" ( identifier )))) ;) (if_statement "if (iVar23 == 0) {\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                    iStack_118 = (int)prVar38 << 1;\n                    goto LAB_000493b8;\n                  }" { (expression_statement "iStack_118 = (int)prVar38 << 1;" (assignment_expression "iStack_118 = (int)prVar38 << 1" identifier = (binary_expression "(int)prVar38 << 1" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (goto_statement "goto LAB_000493b8;" goto statement_identifier ;) })) (if_statement "if (uVar24 == 0) break;" if (parenthesized_expression "(uVar24 == 0)" ( (binary_expression "uVar24 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "puVar35 = puVar35 + 8;" (assignment_expression "puVar35 = puVar35 + 8" identifier = (binary_expression "puVar35 + 8" identifier + number_literal)) ;) (expression_statement "prVar34 = (re_node_set *)((int)&prVar34->alloc + 1);" (assignment_expression "prVar34 = (re_node_set *)((int)&prVar34->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar34->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar34->alloc + 1)" ( (binary_expression "(int)&prVar34->alloc + 1" (cast_expression "(int)&prVar34->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar34->alloc" & (field_expression "prVar34->alloc" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "((int)prVar34 < (int)prVar38)" ( (binary_expression "(int)prVar34 < (int)prVar38" (cast_expression "(int)prVar34" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iStack_118 = (int)prVar38 * 2;" (assignment_expression "iStack_118 = (int)prVar38 * 2" identifier = (binary_expression "(int)prVar38 * 2" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (prVar38 == prVar34) {\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }" if (parenthesized_expression "(prVar38 == prVar34)" ( (binary_expression "prVar38 == prVar34" identifier == identifier) )) (compound_statement "{\n            iVar23 = elem[1].alloc;\n            pcVar46 = *(code **)(puVar44 + 0x2d03c);\n            puVar35 = puVar8 + (int)prVar38 * 8;\n            *puVar35 = rStack_e4.alloc;\n            prVar27 = (re_node_set *)(iVar23 + iVar19);\n            puVar35[1] = rStack_e4.nelem;\n            puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);\n            puVar35[2] = (uint)rStack_e4.elems;\n            puVar35[3] = uStack_d8;\n            puVar35[4] = uStack_d4;\n            puVar35[5] = uStack_d0;\n            puVar35[6] = uStack_cc;\n            puVar35[7] = uStack_c8;\n            pIVar17 = (Idx *)prVar27->alloc;\n            *puVar40 = 1;\n            puVar40[1] = 1;\n            puVar18 = (undefined4 *)(*pcVar46)(4);\n            puVar40[2] = puVar18;\n            if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar40[1] = 0;\n            *puVar40 = 0;\n            if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            goto LAB_00048f5c;\n          }" { (expression_statement "iVar23 = elem[1].alloc;" (assignment_expression "iVar23 = elem[1].alloc" identifier = (field_expression "elem[1].alloc" (subscript_expression "elem[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar46 = *(code **)(puVar44 + 0x2d03c);" (assignment_expression "pcVar46 = *(code **)(puVar44 + 0x2d03c)" identifier = (pointer_expression "*(code **)(puVar44 + 0x2d03c)" * (cast_expression "(code **)(puVar44 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d03c)" ( (binary_expression "puVar44 + 0x2d03c" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = puVar8 + (int)prVar38 * 8;" (assignment_expression "puVar35 = puVar8 + (int)prVar38 * 8" identifier = (binary_expression "puVar8 + (int)prVar38 * 8" identifier + (binary_expression "(int)prVar38 * 8" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar35 = rStack_e4.alloc;" (assignment_expression "*puVar35 = rStack_e4.alloc" (pointer_expression "*puVar35" * identifier) = (field_expression "rStack_e4.alloc" identifier . field_identifier)) ;) (expression_statement "prVar27 = (re_node_set *)(iVar23 + iVar19);" (assignment_expression "prVar27 = (re_node_set *)(iVar23 + iVar19)" identifier = (cast_expression "(re_node_set *)(iVar23 + iVar19)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + iVar19)" ( (binary_expression "iVar23 + iVar19" identifier + identifier) )))) ;) (expression_statement "puVar35[1] = rStack_e4.nelem;" (assignment_expression "puVar35[1] = rStack_e4.nelem" (subscript_expression "puVar35[1]" identifier [ number_literal ]) = (field_expression "rStack_e4.nelem" identifier . field_identifier)) ;) (expression_statement "puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc);" (assignment_expression "puVar40 = (undefined4 *)(iVar4 + (int)prVar38 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar4 + (int)prVar38 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (int)prVar38 * 0xc)" ( (binary_expression "iVar4 + (int)prVar38 * 0xc" identifier + (binary_expression "(int)prVar38 * 0xc" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar35[2] = (uint)rStack_e4.elems;" (assignment_expression "puVar35[2] = (uint)rStack_e4.elems" (subscript_expression "puVar35[2]" identifier [ number_literal ]) = (cast_expression "(uint)rStack_e4.elems" ( (type_descriptor "uint" type_identifier) ) (field_expression "rStack_e4.elems" identifier . field_identifier))) ;) (expression_statement "puVar35[3] = uStack_d8;" (assignment_expression "puVar35[3] = uStack_d8" (subscript_expression "puVar35[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[4] = uStack_d4;" (assignment_expression "puVar35[4] = uStack_d4" (subscript_expression "puVar35[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[5] = uStack_d0;" (assignment_expression "puVar35[5] = uStack_d0" (subscript_expression "puVar35[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[6] = uStack_cc;" (assignment_expression "puVar35[6] = uStack_cc" (subscript_expression "puVar35[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar35[7] = uStack_c8;" (assignment_expression "puVar35[7] = uStack_c8" (subscript_expression "puVar35[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pIVar17 = (Idx *)prVar27->alloc;" (assignment_expression "pIVar17 = (Idx *)prVar27->alloc" identifier = (cast_expression "(Idx *)prVar27->alloc" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar27->alloc" identifier -> field_identifier))) ;) (expression_statement "*puVar40 = 1;" (assignment_expression "*puVar40 = 1" (pointer_expression "*puVar40" * identifier) = number_literal) ;) (expression_statement "puVar40[1] = 1;" (assignment_expression "puVar40[1] = 1" (subscript_expression "puVar40[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18 = (undefined4 *)(*pcVar46)(4);" (assignment_expression "puVar18 = (undefined4 *)(*pcVar46)(4)" identifier = (cast_expression "(undefined4 *)(*pcVar46)(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar46)(4)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "puVar40[2] = puVar18;" (assignment_expression "puVar40[2] = puVar18" (subscript_expression "puVar40[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar18 != (undefined4 *)0x0) {\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }" if (parenthesized_expression "(puVar18 != (undefined4 *)0x0)" ( (binary_expression "puVar18 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pIVar36 = elem->elems;\n              prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);\n              *puVar18 = pIVar17;\n              rStack_e4.alloc = 0;\n              rStack_e4.nelem = 0;\n              rStack_e4.elems = (Idx *)0x0;\n              uStack_d8 = 0;\n              uStack_d4 = 0;\n              uStack_d0 = 0;\n              uStack_cc = 0;\n              uStack_c8 = 0;\n              goto LAB_00048c28;\n            }" { (expression_statement "pIVar36 = elem->elems;" (assignment_expression "pIVar36 = elem->elems" identifier = (field_expression "elem->elems" identifier -> field_identifier)) ;) (expression_statement "prVar38 = (re_node_set *)((int)&prVar38->alloc + 1);" (assignment_expression "prVar38 = (re_node_set *)((int)&prVar38->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar38->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar38->alloc + 1)" ( (binary_expression "(int)&prVar38->alloc + 1" (cast_expression "(int)&prVar38->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->alloc" & (field_expression "prVar38->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*puVar18 = pIVar17;" (assignment_expression "*puVar18 = pIVar17" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "rStack_e4.alloc = 0;" (assignment_expression "rStack_e4.alloc = 0" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.nelem = 0;" (assignment_expression "rStack_e4.nelem = 0" (field_expression "rStack_e4.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.elems = (Idx *)0x0;" (assignment_expression "rStack_e4.elems = (Idx *)0x0" (field_expression "rStack_e4.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" identifier = number_literal) ;) (expression_statement "uStack_c8 = 0;" (assignment_expression "uStack_c8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;) })) (expression_statement "puVar40[1] = 0;" (assignment_expression "puVar40[1] = 0" (subscript_expression "puVar40[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar40 = 0;" (assignment_expression "*puVar40 = 0" (pointer_expression "*puVar40" * identifier) = number_literal) ;) (if_statement "if (prVar38 == (re_node_set *)0x0) {\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }\n            else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }" if (parenthesized_expression "(prVar38 == (re_node_set *)0x0)" ( (binary_expression "prVar38 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }" { (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iVar4);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iVar4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) }) (else_clause "else {\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }" else (compound_statement "{\nLAB_000493b8:\n              iVar32 = iVar4;\n              do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);\n              (**(code **)(puVar44 + 0x2d10c))(iVar4);\n            }" { (labeled_statement "LAB_000493b8:\n              iVar32 = iVar4;" statement_identifier : (expression_statement "iVar32 = iVar4;" (assignment_expression "iVar32 = iVar4" identifier = identifier) ;)) (do_statement "do {\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              } while ((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9);" do (compound_statement "{\n                iVar9 = iVar32 + 0xc;\n                (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n                iVar32 = iVar9;\n              }" { (expression_statement "iVar9 = iVar32 + 0xc;" (assignment_expression "iVar9 = iVar32 + 0xc" identifier = (binary_expression "iVar32 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));" (call_expression "(**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8))" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar32 + 8))" ( (pointer_expression "*(undefined4 *)(iVar32 + 8)" * (cast_expression "(undefined4 *)(iVar32 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + 8)" ( (binary_expression "iVar32 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar32 = iVar9;" (assignment_expression "iVar32 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "((int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9)" ( (binary_expression "(int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4 != iVar9" (binary_expression "(int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4" (binary_expression "(int)((int)&prVar38->alloc + iStack_118) * 4" (cast_expression "(int)((int)&prVar38->alloc + iStack_118)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&prVar38->alloc + iStack_118)" ( (binary_expression "(int)&prVar38->alloc + iStack_118" (cast_expression "(int)&prVar38->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->alloc" & (field_expression "prVar38->alloc" identifier -> field_identifier))) + identifier) ))) * number_literal) + identifier) != identifier) )) ;) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iVar4);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iVar4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00048f5c;" goto statement_identifier ;) })) (expression_statement "pIVar36 = elem->elems;" (assignment_expression "pIVar36 = elem->elems" identifier = (field_expression "elem->elems" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;) })) (if_statement "if ((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)) {\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" if (parenthesized_expression "((bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0))" ( (binary_expression "(bVar1 != 1) || ((*(uint *)(pbVar41 + 4) & 0x200) == 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)(pbVar41 + 4) & 0x200) == 0)" ( (binary_expression "(*(uint *)(pbVar41 + 4) & 0x200) == 0" (parenthesized_expression "(*(uint *)(pbVar41 + 4) & 0x200)" ( (binary_expression "*(uint *)(pbVar41 + 4) & 0x200" (pointer_expression "*(uint *)(pbVar41 + 4)" * (cast_expression "(uint *)(pbVar41 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar41 + 4)" ( (binary_expression "pbVar41 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          prVar34 = prVar3 + 8;\n          if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }\n          if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" { (expression_statement "prVar34 = prVar3 + 8;" (assignment_expression "prVar34 = prVar3 + 8" identifier = (binary_expression "prVar3 + 8" identifier + number_literal)) ;) (if_statement "if ((int)prVar3[7].elems < 2) {\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }\n          else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }" if (parenthesized_expression "((int)prVar3[7].elems < 2)" ( (binary_expression "(int)prVar3[7].elems < 2" (cast_expression "(int)prVar3[7].elems" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar3[7].elems" (subscript_expression "prVar3[7]" identifier [ number_literal ]) . field_identifier)) < number_literal) )) (compound_statement "{\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);\n          }" { (expression_statement "prVar27 = (re_node_set *)0x0;" (assignment_expression "prVar27 = (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 "prVar21 = &rStack_e4;" (assignment_expression "prVar21 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (do_statement "do {\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while ((re_node_set *)pIVar14 != &rStack_c4);" do (compound_statement "{\n              pIVar14 = &prVar21->nelem;\n              pIVar17 = &prVar34->alloc;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            }" { (expression_statement "pIVar14 = &prVar21->nelem;" (assignment_expression "pIVar14 = &prVar21->nelem" identifier = (pointer_expression "&prVar21->nelem" & (field_expression "prVar21->nelem" identifier -> field_identifier))) ;) (expression_statement "pIVar17 = &prVar34->alloc;" (assignment_expression "pIVar17 = &prVar34->alloc" identifier = (pointer_expression "&prVar34->alloc" & (field_expression "prVar34->alloc" identifier -> field_identifier))) ;) (expression_statement "prVar34 = (re_node_set *)&prVar34->nelem;" (assignment_expression "prVar34 = (re_node_set *)&prVar34->nelem" identifier = (cast_expression "(re_node_set *)&prVar34->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar34->nelem" & (field_expression "prVar34->nelem" identifier -> field_identifier)))) ;) (expression_statement "pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc);" (assignment_expression "pIVar17 = (Idx *)(~*pIVar17 & (uint)prVar21->alloc)" identifier = (cast_expression "(Idx *)(~*pIVar17 & (uint)prVar21->alloc)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~*pIVar17 & (uint)prVar21->alloc)" ( (binary_expression "~*pIVar17 & (uint)prVar21->alloc" (unary_expression "~*pIVar17" ~ (pointer_expression "*pIVar17" * identifier)) & (cast_expression "(uint)prVar21->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar21->alloc" identifier -> field_identifier))) )))) ;) (expression_statement "prVar21->alloc = (Idx)pIVar17;" (assignment_expression "prVar21->alloc = (Idx)pIVar17" (field_expression "prVar21->alloc" identifier -> field_identifier) = (cast_expression "(Idx)pIVar17" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);" (assignment_expression "prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17)" identifier = (cast_expression "(re_node_set *)((uint)prVar27 | (uint)pIVar17)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar27 | (uint)pIVar17)" ( (binary_expression "(uint)prVar27 | (uint)pIVar17" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)pIVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "prVar21 = (re_node_set *)pIVar14;" (assignment_expression "prVar21 = (re_node_set *)pIVar14" identifier = (cast_expression "(re_node_set *)pIVar14" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((re_node_set *)pIVar14 != &rStack_c4)" ( (binary_expression "(re_node_set *)pIVar14 != &rStack_c4" (cast_expression "(re_node_set *)pIVar14" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&rStack_c4" & identifier)) )) ;) }) (else_clause "else {\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }" else (compound_statement "{\n            puVar35 = (uint *)prVar3[5].alloc;\n            prVar27 = (re_node_set *)0x0;\n            prVar21 = &rStack_e4;\n            do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);\n          }" { (expression_statement "puVar35 = (uint *)prVar3[5].alloc;" (assignment_expression "puVar35 = (uint *)prVar3[5].alloc" identifier = (cast_expression "(uint *)prVar3[5].alloc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar3[5].alloc" (subscript_expression "prVar3[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "prVar27 = (re_node_set *)0x0;" (assignment_expression "prVar27 = (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 "prVar21 = &rStack_e4;" (assignment_expression "prVar21 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (do_statement "do {\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            } while (&rStack_c4 != (re_node_set *)pIVar14);" do (compound_statement "{\n              pIVar14 = &prVar21->nelem;\n              uVar28 = *puVar35;\n              pIVar17 = &prVar34->alloc;\n              puVar35 = puVar35 + 1;\n              prVar34 = (re_node_set *)&prVar34->nelem;\n              pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);\n              prVar21->alloc = (Idx)pIVar17;\n              prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);\n              prVar21 = (re_node_set *)pIVar14;\n            }" { (expression_statement "pIVar14 = &prVar21->nelem;" (assignment_expression "pIVar14 = &prVar21->nelem" identifier = (pointer_expression "&prVar21->nelem" & (field_expression "prVar21->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar28 = *puVar35;" (assignment_expression "uVar28 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "pIVar17 = &prVar34->alloc;" (assignment_expression "pIVar17 = &prVar34->alloc" identifier = (pointer_expression "&prVar34->alloc" & (field_expression "prVar34->alloc" identifier -> field_identifier))) ;) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "prVar34 = (re_node_set *)&prVar34->nelem;" (assignment_expression "prVar34 = (re_node_set *)&prVar34->nelem" identifier = (cast_expression "(re_node_set *)&prVar34->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar34->nelem" & (field_expression "prVar34->nelem" identifier -> field_identifier)))) ;) (expression_statement "pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc);" (assignment_expression "pIVar17 = (Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc)" identifier = (cast_expression "(Idx *)(~(*pIVar17 & uVar28) & (uint)prVar21->alloc)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(*pIVar17 & uVar28) & (uint)prVar21->alloc)" ( (binary_expression "~(*pIVar17 & uVar28) & (uint)prVar21->alloc" (unary_expression "~(*pIVar17 & uVar28)" ~ (parenthesized_expression "(*pIVar17 & uVar28)" ( (binary_expression "*pIVar17 & uVar28" (pointer_expression "*pIVar17" * identifier) & identifier) ))) & (cast_expression "(uint)prVar21->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar21->alloc" identifier -> field_identifier))) )))) ;) (expression_statement "prVar21->alloc = (Idx)pIVar17;" (assignment_expression "prVar21->alloc = (Idx)pIVar17" (field_expression "prVar21->alloc" identifier -> field_identifier) = (cast_expression "(Idx)pIVar17" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17);" (assignment_expression "prVar27 = (re_node_set *)((uint)prVar27 | (uint)pIVar17)" identifier = (cast_expression "(re_node_set *)((uint)prVar27 | (uint)pIVar17)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar27 | (uint)pIVar17)" ( (binary_expression "(uint)prVar27 | (uint)pIVar17" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)pIVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "prVar21 = (re_node_set *)pIVar14;" (assignment_expression "prVar21 = (re_node_set *)pIVar14" identifier = (cast_expression "(re_node_set *)pIVar14" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_c4 != (re_node_set *)pIVar14)" ( (binary_expression "&rStack_c4 != (re_node_set *)pIVar14" (pointer_expression "&rStack_c4" & identifier) != (cast_expression "(re_node_set *)pIVar14" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) }))) (if_statement "if (prVar27 == (re_node_set *)0x0) goto LAB_00048c28;" if (parenthesized_expression "(prVar27 == (re_node_set *)0x0)" ( (binary_expression "prVar27 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) (goto_statement "goto LAB_000490bc;" goto statement_identifier ;) })) (expression_statement "rStack_e4.alloc = 0;" (assignment_expression "rStack_e4.alloc = 0" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }" else (compound_statement "{\n        rStack_e4.nelem = 0;\n        rStack_e4.alloc = 0;\n        rStack_e4.elems = (Idx *)0x0;\n        uStack_d8 = 0;\n        uStack_d4 = 0;\n        uStack_d0 = 0;\n        uStack_cc = 0;\n        uStack_c8 = 0;\n        if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;\n        rStack_e4.alloc = 0x400;\n        if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        rStack_e4.alloc = 0;\n      }" { (expression_statement "rStack_e4.nelem = 0;" (assignment_expression "rStack_e4.nelem = 0" (field_expression "rStack_e4.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.alloc = 0;" (assignment_expression "rStack_e4.alloc = 0" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.elems = (Idx *)0x0;" (assignment_expression "rStack_e4.elems = (Idx *)0x0" (field_expression "rStack_e4.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" identifier = number_literal) ;) (expression_statement "uStack_c8 = 0;" (assignment_expression "uStack_c8 = 0" identifier = number_literal) ;) (if_statement "if ((IVar5 & 0x400U) == 0) goto LAB_00048c28;" if (parenthesized_expression "((IVar5 & 0x400U) == 0)" ( (binary_expression "(IVar5 & 0x400U) == 0" (parenthesized_expression "(IVar5 & 0x400U)" ( (binary_expression "IVar5 & 0x400U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) (expression_statement "rStack_e4.alloc = 0x400;" (assignment_expression "rStack_e4.alloc = 0x400" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) (if_statement "if ((uVar28 & 0x80) == 0) goto LAB_00048fdc;" if (parenthesized_expression "((uVar28 & 0x80) == 0)" ( (binary_expression "(uVar28 & 0x80) == 0" (parenthesized_expression "(uVar28 & 0x80)" ( (binary_expression "uVar28 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00048fdc;" goto statement_identifier ;)) (labeled_statement "LAB_00049388:\n        rStack_e4.alloc = 0;" statement_identifier : (expression_statement "rStack_e4.alloc = 0;" (assignment_expression "rStack_e4.alloc = 0" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;)) }))) (expression_statement "rStack_e4.alloc = 0;" (assignment_expression "rStack_e4.alloc = 0" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.nelem = 0;" (assignment_expression "rStack_e4.nelem = 0" (field_expression "rStack_e4.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.elems = (Idx *)0x0;" (assignment_expression "rStack_e4.elems = (Idx *)0x0" (field_expression "rStack_e4.elems" identifier . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" identifier = number_literal) ;) (expression_statement "uStack_c8 = 0;" (assignment_expression "uStack_c8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" else (compound_statement "{\n      if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      prVar27 = (re_node_set *)0xffffffff;\n      if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" { (if_statement "if (bVar1 == 3) {\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }" if (parenthesized_expression "(bVar1 == 3)" ( (binary_expression "bVar1 == 3" identifier == number_literal) )) (compound_statement "{\n        puVar35 = *(uint **)pbVar41;\n        prVar34 = &rStack_e4;\n        do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);\n        goto LAB_00048fc0;\n      }" { (expression_statement "puVar35 = *(uint **)pbVar41;" (assignment_expression "puVar35 = *(uint **)pbVar41" identifier = (pointer_expression "*(uint **)pbVar41" * (cast_expression "(uint **)pbVar41" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "prVar34 = &rStack_e4;" (assignment_expression "prVar34 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (do_statement "do {\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        } while (&rStack_c4 != (re_node_set *)pIVar17);" do (compound_statement "{\n          pIVar17 = &prVar34->nelem;\n          uVar24 = *puVar35;\n          puVar35 = puVar35 + 1;\n          prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);\n          prVar34->alloc = (Idx)prVar27;\n          prVar34 = (re_node_set *)pIVar17;\n        }" { (expression_statement "pIVar17 = &prVar34->nelem;" (assignment_expression "pIVar17 = &prVar34->nelem" identifier = (pointer_expression "&prVar34->nelem" & (field_expression "prVar34->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar24 = *puVar35;" (assignment_expression "uVar24 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24);" (assignment_expression "prVar27 = (re_node_set *)((uint)prVar34->alloc | uVar24)" identifier = (cast_expression "(re_node_set *)((uint)prVar34->alloc | uVar24)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar34->alloc | uVar24)" ( (binary_expression "(uint)prVar34->alloc | uVar24" (cast_expression "(uint)prVar34->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar34->alloc" identifier -> field_identifier)) | identifier) )))) ;) (expression_statement "prVar34->alloc = (Idx)prVar27;" (assignment_expression "prVar34->alloc = (Idx)prVar27" (field_expression "prVar34->alloc" identifier -> field_identifier) = (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prVar34 = (re_node_set *)pIVar17;" (assignment_expression "prVar34 = (re_node_set *)pIVar17" identifier = (cast_expression "(re_node_set *)pIVar17" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_c4 != (re_node_set *)pIVar17)" ( (binary_expression "&rStack_c4 != (re_node_set *)pIVar17" (pointer_expression "&rStack_c4" & identifier) != (cast_expression "(re_node_set *)pIVar17" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (goto_statement "goto LAB_00048fc0;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 5) {\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" if (parenthesized_expression "(bVar1 == 5)" ( (binary_expression "bVar1 == 5" identifier == number_literal) )) (compound_statement "{\n        if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }\n        pIVar17 = prVar3[10].elems;\njoined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }\n        prVar27 = (re_node_set *)rStack_e4.alloc;\n        if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" { (if_statement "if ((int)prVar3[7].elems < 2) {\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }\n        else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }" if (parenthesized_expression "((int)prVar3[7].elems < 2)" ( (binary_expression "(int)prVar3[7].elems < 2" (cast_expression "(int)prVar3[7].elems" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar3[7].elems" (subscript_expression "prVar3[7]" identifier [ number_literal ]) . field_identifier)) < number_literal) )) (compound_statement "{\n          rStack_e4.alloc = -1;\n          rStack_e4.nelem = 0xffffffff;\n          rStack_e4.elems = (Idx *)0xffffffff;\n          uStack_d8 = 0xffffffff;\n          uStack_d4 = 0xffffffff;\n          uStack_d0 = 0xffffffff;\n          uStack_cc = 0xffffffff;\n          uStack_c8 = 0xffffffff;\n        }" { (expression_statement "rStack_e4.alloc = -1;" (assignment_expression "rStack_e4.alloc = -1" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.nelem = 0xffffffff;" (assignment_expression "rStack_e4.nelem = 0xffffffff" (field_expression "rStack_e4.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.elems = (Idx *)0xffffffff;" (assignment_expression "rStack_e4.elems = (Idx *)0xffffffff" (field_expression "rStack_e4.elems" identifier . field_identifier) = (cast_expression "(Idx *)0xffffffff" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_d8 = 0xffffffff;" (assignment_expression "uStack_d8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0xffffffff;" (assignment_expression "uStack_d4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0xffffffff;" (assignment_expression "uStack_d0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_cc = 0xffffffff;" (assignment_expression "uStack_cc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_c8 = 0xffffffff;" (assignment_expression "uStack_c8 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }" else (compound_statement "{\n          puVar35 = (uint *)prVar3[5].alloc;\n          prVar27 = &rStack_e4;\n          do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);\n        }" { (expression_statement "puVar35 = (uint *)prVar3[5].alloc;" (assignment_expression "puVar35 = (uint *)prVar3[5].alloc" identifier = (cast_expression "(uint *)prVar3[5].alloc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar3[5].alloc" (subscript_expression "prVar3[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "prVar27 = &rStack_e4;" (assignment_expression "prVar27 = &rStack_e4" identifier = (pointer_expression "&rStack_e4" & identifier)) ;) (do_statement "do {\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          } while (&rStack_c4 != (re_node_set *)pIVar17);" do (compound_statement "{\n            pIVar17 = &prVar27->nelem;\n            uVar24 = *puVar35;\n            puVar35 = puVar35 + 1;\n            prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);\n            prVar27 = (re_node_set *)pIVar17;\n          }" { (expression_statement "pIVar17 = &prVar27->nelem;" (assignment_expression "pIVar17 = &prVar27->nelem" identifier = (pointer_expression "&prVar27->nelem" & (field_expression "prVar27->nelem" identifier -> field_identifier))) ;) (expression_statement "uVar24 = *puVar35;" (assignment_expression "uVar24 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24);" (assignment_expression "prVar27->alloc = (Idx)((uint)prVar27->alloc | uVar24)" (field_expression "prVar27->alloc" identifier -> field_identifier) = (call_expression "(Idx)((uint)prVar27->alloc | uVar24)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((uint)prVar27->alloc | uVar24)" ( (binary_expression "(uint)prVar27->alloc | uVar24" (cast_expression "(uint)prVar27->alloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar27->alloc" identifier -> field_identifier)) | identifier) )))) ;) (expression_statement "prVar27 = (re_node_set *)pIVar17;" (assignment_expression "prVar27 = (re_node_set *)pIVar17" identifier = (cast_expression "(re_node_set *)pIVar17" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(&rStack_c4 != (re_node_set *)pIVar17)" ( (binary_expression "&rStack_c4 != (re_node_set *)pIVar17" (pointer_expression "&rStack_c4" & identifier) != (cast_expression "(re_node_set *)pIVar17" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) }))) (expression_statement "pIVar17 = prVar3[10].elems;" (assignment_expression "pIVar17 = prVar3[10].elems" identifier = (field_expression "prVar3[10].elems" (subscript_expression "prVar3[10]" identifier [ number_literal ]) . field_identifier)) ;) (labeled_statement "joined_r0x00049318:\n        if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }" statement_identifier : (if_statement "if (((uint)pIVar17 & 0x40) == 0) {\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }" if (parenthesized_expression "(((uint)pIVar17 & 0x40) == 0)" ( (binary_expression "((uint)pIVar17 & 0x40) == 0" (parenthesized_expression "((uint)pIVar17 & 0x40)" ( (binary_expression "(uint)pIVar17 & 0x40" (cast_expression "(uint)pIVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);\n        }" { (expression_statement "rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff);" (assignment_expression "rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffbff)" (field_expression "rStack_e4.alloc" identifier . field_identifier) = (call_expression "(Idx)(rStack_e4.alloc & 0xfffffbff)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(rStack_e4.alloc & 0xfffffbff)" ( (binary_expression "rStack_e4.alloc & 0xfffffbff" (field_expression "rStack_e4.alloc" identifier . field_identifier) & number_literal) )))) ;) }))) (expression_statement "prVar27 = (re_node_set *)rStack_e4.alloc;" (assignment_expression "prVar27 = (re_node_set *)rStack_e4.alloc" identifier = (cast_expression "(re_node_set *)rStack_e4.alloc" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "rStack_e4.alloc" identifier . field_identifier))) ;) (if_statement "if (((uint)pIVar17 & 0x80) != 0) {\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }" if (parenthesized_expression "(((uint)pIVar17 & 0x80) != 0)" ( (binary_expression "((uint)pIVar17 & 0x80) != 0" (parenthesized_expression "((uint)pIVar17 & 0x80)" ( (binary_expression "(uint)pIVar17 & 0x80" (cast_expression "(uint)pIVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          prVar27 = (re_node_set *)&SUB_fffffffe;\n          rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);\n        }" { (expression_statement "prVar27 = (re_node_set *)&SUB_fffffffe;" (assignment_expression "prVar27 = (re_node_set *)&SUB_fffffffe" identifier = (cast_expression "(re_node_set *)&SUB_fffffffe" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_fffffffe" & identifier))) ;) (expression_statement "rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe);" (assignment_expression "rStack_e4.alloc = (Idx)(rStack_e4.alloc & 0xfffffffe)" (field_expression "rStack_e4.alloc" identifier . field_identifier) = (call_expression "(Idx)(rStack_e4.alloc & 0xfffffffe)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(rStack_e4.alloc & 0xfffffffe)" ( (binary_expression "rStack_e4.alloc & 0xfffffffe" (field_expression "rStack_e4.alloc" identifier . field_identifier) & number_literal) )))) ;) })) (goto_statement "goto LAB_00048fc0;" goto statement_identifier ;) })) (expression_statement "prVar27 = (re_node_set *)0xffffffff;" (assignment_expression "prVar27 = (re_node_set *)0xffffffff" identifier = (cast_expression "(re_node_set *)0xffffffff" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar1 == 7) {\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" if (parenthesized_expression "(bVar1 == 7)" ( (binary_expression "bVar1 == 7" identifier == number_literal) )) (compound_statement "{\n        pIVar17 = prVar3[10].elems;\n        rStack_e4.alloc = -1;\n        rStack_e4.nelem = 0xffffffff;\n        rStack_e4.elems = (Idx *)0xffffffff;\n        uStack_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" { (expression_statement "pIVar17 = prVar3[10].elems;" (assignment_expression "pIVar17 = prVar3[10].elems" identifier = (field_expression "prVar3[10].elems" (subscript_expression "prVar3[10]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "rStack_e4.alloc = -1;" (assignment_expression "rStack_e4.alloc = -1" (field_expression "rStack_e4.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.nelem = 0xffffffff;" (assignment_expression "rStack_e4.nelem = 0xffffffff" (field_expression "rStack_e4.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "rStack_e4.elems = (Idx *)0xffffffff;" (assignment_expression "rStack_e4.elems = (Idx *)0xffffffff" (field_expression "rStack_e4.elems" identifier . field_identifier) = (cast_expression "(Idx *)0xffffffff" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_d8 = 0xffffffff;" (assignment_expression "uStack_d8 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x00049318;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00048c28:\n    iStack_124 = iStack_124 + 1;" statement_identifier : (expression_statement "iStack_124 = iStack_124 + 1;" (assignment_expression "iStack_124 = iStack_124 + 1" identifier = (binary_expression "iStack_124 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)pIVar36 <= iStack_124) goto code_r0x00048c3c;" if (parenthesized_expression "((int)pIVar36 <= iStack_124)" ( (binary_expression "(int)pIVar36 <= iStack_124" (cast_expression "(int)pIVar36" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x00048c3c;" goto statement_identifier ;)) (goto_statement "goto LAB_00048bd4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iVar4);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iVar4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) (labeled_statement "LAB_00049784:\n  prVar27 = (re_node_set *)0x100;" statement_identifier : (expression_statement "prVar27 = (re_node_set *)0x100;" (assignment_expression "prVar27 = (re_node_set *)0x100" identifier = (cast_expression "(re_node_set *)0x100" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);" (assignment_expression "pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4)" identifier = (cast_expression "(Idx *)(**(code **)(puVar44 + 0x2ced8))(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar44 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar44 + 0x2ced8)" * (pointer_expression "*(code **)(puVar44 + 0x2ced8)" * (cast_expression "(code **)(puVar44 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2ced8)" ( (binary_expression "puVar44 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "elem[3].elems = pIVar36;" (assignment_expression "elem[3].elems = pIVar36" (field_expression "elem[3].elems" (subscript_expression "elem[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "rVar6 = (reg_errcode_t)(pIVar36 != (Idx *)0x0);" (assignment_expression "rVar6 = (reg_errcode_t)(pIVar36 != (Idx *)0x0)" identifier = (call_expression "(reg_errcode_t)(pIVar36 != (Idx *)0x0)" (parenthesized_expression "(reg_errcode_t)" ( identifier )) (argument_list "(pIVar36 != (Idx *)0x0)" ( (binary_expression "pIVar36 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (labeled_statement "LAB_00048f60:\n  if (prStack_84 == (re_dfa_t *)*piVar7) {\n    return rVar6;\n  }" statement_identifier : (if_statement "if (prStack_84 == (re_dfa_t *)*piVar7) {\n    return rVar6;\n  }" if (parenthesized_expression "(prStack_84 == (re_dfa_t *)*piVar7)" ( (binary_expression "prStack_84 == (re_dfa_t *)*piVar7" identifier == (cast_expression "(re_dfa_t *)*piVar7" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) )) (compound_statement "{\n    return rVar6;\n  }" { (return_statement "return rVar6;" return identifier ;) }))) (expression_statement "pcVar46 = *(code **)(puVar44 + 0x2d0b8);" (assignment_expression "pcVar46 = *(code **)(puVar44 + 0x2d0b8)" identifier = (pointer_expression "*(code **)(puVar44 + 0x2d0b8)" * (cast_expression "(code **)(puVar44 + 0x2d0b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d0b8)" ( (binary_expression "puVar44 + 0x2d0b8" identifier + number_literal) ))))) ;) (expression_statement "prVar20 = prStack_84;" (assignment_expression "prVar20 = prStack_84" identifier = identifier) ;) (expression_statement "(*pcVar46)();" (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)&prVar27[2].alloc == '\x10') {\n    IVar5 = *(Idx *)(prVar27->nelem + 0x1c);\n    prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc);\n    prVar27[2].nelem = IVar5;\n    return _REG_NOERROR;\n  }" if (parenthesized_expression "(*(char *)&prVar27[2].alloc == '\x10')" ( (binary_expression "*(char *)&prVar27[2].alloc == '\x10'" (pointer_expression "*(char *)&prVar27[2].alloc" * (cast_expression "(char *)&prVar27[2].alloc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar27[2].alloc" & (field_expression "prVar27[2].alloc" (subscript_expression "prVar27[2]" identifier [ number_literal ]) . field_identifier)))) == (char_literal "'\x10'" ' escape_sequence ')) )) (compound_statement "{\n    IVar5 = *(Idx *)(prVar27->nelem + 0x1c);\n    prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc);\n    prVar27[2].nelem = IVar5;\n    return _REG_NOERROR;\n  }" { (expression_statement "IVar5 = *(Idx *)(prVar27->nelem + 0x1c);" (assignment_expression "IVar5 = *(Idx *)(prVar27->nelem + 0x1c)" identifier = (pointer_expression "*(Idx *)(prVar27->nelem + 0x1c)" * (cast_expression "(Idx *)(prVar27->nelem + 0x1c)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar27->nelem + 0x1c)" ( (binary_expression "prVar27->nelem + 0x1c" (field_expression "prVar27->nelem" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc);" (assignment_expression "prVar27[1].alloc = *(Idx *)(prVar27->nelem + 0xc)" (field_expression "prVar27[1].alloc" (subscript_expression "prVar27[1]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(Idx *)(prVar27->nelem + 0xc)" * (cast_expression "(Idx *)(prVar27->nelem + 0xc)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar27->nelem + 0xc)" ( (binary_expression "prVar27->nelem + 0xc" (field_expression "prVar27->nelem" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "prVar27[2].nelem = IVar5;" (assignment_expression "prVar27[2].nelem = IVar5" (field_expression "prVar27[2].nelem" (subscript_expression "prVar27[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (return_statement "return _REG_NOERROR;" return identifier ;) })) (expression_statement "prVar27[1].alloc = (Idx)prVar27;" (assignment_expression "prVar27[1].alloc = (Idx)prVar27" (field_expression "prVar27[1].alloc" (subscript_expression "prVar27[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "token.opr.sbcset = (re_bitset_ptr_t)(pcVar46 + 0x33cb4);" (assignment_expression "token.opr.sbcset = (re_bitset_ptr_t)(pcVar46 + 0x33cb4)" (field_expression "token.opr.sbcset" (field_expression "token.opr" identifier . field_identifier) . field_identifier) = (call_expression "(re_bitset_ptr_t)(pcVar46 + 0x33cb4)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(pcVar46 + 0x33cb4)" ( (binary_expression "pcVar46 + 0x33cb4" identifier + number_literal) )))) ;) (expression_statement "token._4_4_ = in_stack_fffffeac;" (assignment_expression "token._4_4_ = in_stack_fffffeac" (field_expression "token._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "IVar5 = re_dfa_add_node(prVar20,token);" (assignment_expression "IVar5 = re_dfa_add_node(prVar20,token)" identifier = (call_expression "re_dfa_add_node(prVar20,token)" identifier (argument_list "(prVar20,token)" ( identifier , identifier )))) ;) (expression_statement "prVar27[2].nelem = IVar5;" (assignment_expression "prVar27[2].nelem = IVar5" (field_expression "prVar27[2].nelem" (subscript_expression "prVar27[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (if_statement "if (IVar5 == -1) {\n    rVar6 = _REG_ESPACE;\n  }\n  else {\n    if (*(char *)&prVar27[2].alloc == '\f') {\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar6 = _REG_NOERROR;\n  }" if (parenthesized_expression "(IVar5 == -1)" ( (binary_expression "IVar5 == -1" identifier == number_literal) )) (compound_statement "{\n    rVar6 = _REG_ESPACE;\n  }" { (expression_statement "rVar6 = _REG_ESPACE;" (assignment_expression "rVar6 = _REG_ESPACE" identifier = identifier) ;) }) (else_clause "else {\n    if (*(char *)&prVar27[2].alloc == '\f') {\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar6 = _REG_NOERROR;\n  }" else (compound_statement "{\n    if (*(char *)&prVar27[2].alloc == '\f') {\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }\n    rVar6 = _REG_NOERROR;\n  }" { (if_statement "if (*(char *)&prVar27[2].alloc == '\f') {\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }" if (parenthesized_expression "(*(char *)&prVar27[2].alloc == '\f')" ( (binary_expression "*(char *)&prVar27[2].alloc == '\f'" (pointer_expression "*(char *)&prVar27[2].alloc" * (cast_expression "(char *)&prVar27[2].alloc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar27[2].alloc" & (field_expression "prVar27[2].alloc" (subscript_expression "prVar27[2]" identifier [ number_literal ]) . field_identifier)))) == (char_literal "'\f'" ' escape_sequence ')) )) (compound_statement "{\n      *(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;\n      return _REG_NOERROR;\n    }" { (expression_statement "*(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe;" (assignment_expression "*(uint *)&prVar20->nodes[IVar5].field_0x4 =\n           *(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe" (pointer_expression "*(uint *)&prVar20->nodes[IVar5].field_0x4" * (cast_expression "(uint *)&prVar20->nodes[IVar5].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar20->nodes[IVar5].field_0x4" & (field_expression "prVar20->nodes[IVar5].field_0x4" (subscript_expression "prVar20->nodes[IVar5]" (field_expression "prVar20->nodes" identifier -> field_identifier) [ identifier ]) . field_identifier)))) = (binary_expression "*(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff |\n           ((uint)prVar27[1].elems & 0x3ff) << 0xe" (binary_expression "*(uint *)&prVar20->nodes[IVar5].field_0x4 & 0xff003fff" (pointer_expression "*(uint *)&prVar20->nodes[IVar5].field_0x4" * (cast_expression "(uint *)&prVar20->nodes[IVar5].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar20->nodes[IVar5].field_0x4" & (field_expression "prVar20->nodes[IVar5].field_0x4" (subscript_expression "prVar20->nodes[IVar5]" (field_expression "prVar20->nodes" identifier -> field_identifier) [ identifier ]) . field_identifier)))) & number_literal) | (binary_expression "((uint)prVar27[1].elems & 0x3ff) << 0xe" (parenthesized_expression "((uint)prVar27[1].elems & 0x3ff)" ( (binary_expression "(uint)prVar27[1].elems & 0x3ff" (cast_expression "(uint)prVar27[1].elems" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar27[1].elems" (subscript_expression "prVar27[1]" identifier [ number_literal ]) . field_identifier)) & number_literal) )) << number_literal))) ;) (return_statement "return _REG_NOERROR;" return identifier ;) })) (expression_statement "rVar6 = _REG_NOERROR;" (assignment_expression "rVar6 = _REG_NOERROR" identifier = identifier) ;) }))) (return_statement "return rVar6;" return identifier ;) (labeled_statement "code_r0x00048c3c:\n  if (0 < (int)prVar38) {\n    puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);\n    uStack_ec = 0;\n    puStack_f0 = puVar10;\n    iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);\n    iStack_e8 = iVar32;\n    if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {\n      iStack_118 = (int)prVar38 << 1;\n    }\n    else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar44 + 0x2d10c))(iVar32);\n    iVar32 = iVar4;\n    do {\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);\n    (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00048f5c:\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }" statement_identifier : (if_statement "if (0 < (int)prVar38) {\n    puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);\n    uStack_ec = 0;\n    puStack_f0 = puVar10;\n    iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);\n    iStack_e8 = iVar32;\n    if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {\n      iStack_118 = (int)prVar38 << 1;\n    }\n    else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar44 + 0x2d10c))(iVar32);\n    iVar32 = iVar4;\n    do {\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);\n    (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00048f5c:\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }" if (parenthesized_expression "(0 < (int)prVar38)" ( (binary_expression "0 < (int)prVar38" number_literal < (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);\n    uStack_ec = 0;\n    puStack_f0 = puVar10;\n    iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);\n    iStack_e8 = iVar32;\n    if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {\n      iStack_118 = (int)prVar38 << 1;\n    }\n    else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar44 + 0x2d10c))(iVar32);\n    iVar32 = iVar4;\n    do {\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);\n    (**(code **)(puVar44 + 0x2d10c))(iVar4);\nLAB_00048f5c:\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }" { (expression_statement "puVar10 = (undefined1 *)((int)&prVar38->alloc + 1);" (assignment_expression "puVar10 = (undefined1 *)((int)&prVar38->alloc + 1)" identifier = (cast_expression "(undefined1 *)((int)&prVar38->alloc + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar38->alloc + 1)" ( (binary_expression "(int)&prVar38->alloc + 1" (cast_expression "(int)&prVar38->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->alloc" & (field_expression "prVar38->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (expression_statement "puStack_f0 = puVar10;" (assignment_expression "puStack_f0 = puVar10" identifier = identifier) ;) (expression_statement "iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4);" (assignment_expression "iVar32 = (**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4)" identifier = (call_expression "(**(code **)(puVar44 + 0x2d03c))((int)puVar10 * 4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d03c)" * (pointer_expression "*(code **)(puVar44 + 0x2d03c)" * (cast_expression "(code **)(puVar44 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d03c)" ( (binary_expression "puVar44 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "((int)puVar10 * 4)" ( (binary_expression "(int)puVar10 * 4" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "iStack_e8 = iVar32;" (assignment_expression "iStack_e8 = iVar32" identifier = identifier) ;) (if_statement "if ((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)) {\n      iStack_118 = (int)prVar38 << 1;\n    }\n    else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }" if (parenthesized_expression "((iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38))" ( (binary_expression "(iVar32 == 0) || (iStack_f4 = 0, 0x155551aa < (int)prVar38)" (parenthesized_expression "(iVar32 == 0)" ( (binary_expression "iVar32 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_f4 = 0, 0x155551aa < (int)prVar38)" ( (comma_expression "iStack_f4 = 0, 0x155551aa < (int)prVar38" (assignment_expression "iStack_f4 = 0" identifier = number_literal) , (binary_expression "0x155551aa < (int)prVar38" number_literal < (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      iStack_118 = (int)prVar38 << 1;\n    }" { (expression_statement "iStack_118 = (int)prVar38 << 1;" (assignment_expression "iStack_118 = (int)prVar38 << 1" identifier = (binary_expression "(int)prVar38 << 1" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }) (else_clause "else {\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }" else (compound_statement "{\n      iStack_118 = (int)prVar38 * 2;\n      pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);\n      if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }\n    }" { (expression_statement "iStack_118 = (int)prVar38 * 2;" (assignment_expression "iStack_118 = (int)prVar38 * 2" identifier = (binary_expression "(int)prVar38 * 2" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc);" (assignment_expression "pIVar36 = (Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc)" identifier = (cast_expression "(Idx *)(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar44 + 0x2d03c))((int)prVar38 * 0xc)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d03c)" * (pointer_expression "*(code **)(puVar44 + 0x2d03c)" * (cast_expression "(code **)(puVar44 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d03c)" ( (binary_expression "puVar44 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "((int)prVar38 * 0xc)" ( (binary_expression "(int)prVar38 * 0xc" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (pIVar36 != (Idx *)0x0) {\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }" if (parenthesized_expression "(pIVar36 != (Idx *)0x0)" ( (binary_expression "pIVar36 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar32 = (int)puVar10 * 4 + -4;\n        pprVar33 = &prStack_a4;\n        iVar19 = 0;\n        pIVar17 = pIVar36 + (int)&prVar38->alloc;\n        prStack_a4 = (re_dfa_t *)0x0;\n        piVar37 = (int *)(iVar4 + 4);\n        uStack_a0 = 0;\n        uStack_9c = 0;\n        iVar9 = *(int *)(puVar44 + 0x2ce30);\n        uStack_98 = 0;\n        bVar2 = false;\n        uStack_94 = 0;\n        uStack_90 = 0;\n        uStack_8c = 0;\n        uStack_88 = 0;\n        pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);\n        do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);\n        if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }\n        pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }\n        (*pcVar46)(pIVar36);\n        (**(code **)(puVar44 + 0x2d10c))(iStack_e8);\n        iVar32 = iVar4;\n        do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);\n        (**(code **)(puVar44 + 0x2d10c))(iVar4);\n        rVar6 = _REG_NOMATCH;\n        goto LAB_00048f60;\n      }" { (expression_statement "iVar32 = (int)puVar10 * 4 + -4;" (assignment_expression "iVar32 = (int)puVar10 * 4 + -4" identifier = (binary_expression "(int)puVar10 * 4 + -4" (binary_expression "(int)puVar10 * 4" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (expression_statement "pprVar33 = &prStack_a4;" (assignment_expression "pprVar33 = &prStack_a4" identifier = (pointer_expression "&prStack_a4" & identifier)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pIVar17 = pIVar36 + (int)&prVar38->alloc;" (assignment_expression "pIVar17 = pIVar36 + (int)&prVar38->alloc" identifier = (binary_expression "pIVar36 + (int)&prVar38->alloc" identifier + (cast_expression "(int)&prVar38->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->alloc" & (field_expression "prVar38->alloc" identifier -> field_identifier))))) ;) (expression_statement "prStack_a4 = (re_dfa_t *)0x0;" (assignment_expression "prStack_a4 = (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 "piVar37 = (int *)(iVar4 + 4);" (assignment_expression "piVar37 = (int *)(iVar4 + 4)" identifier = (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) ;) (expression_statement "uStack_a0 = 0;" (assignment_expression "uStack_a0 = 0" identifier = number_literal) ;) (expression_statement "uStack_9c = 0;" (assignment_expression "uStack_9c = 0" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(puVar44 + 0x2ce30);" (assignment_expression "iVar9 = *(int *)(puVar44 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar44 + 0x2ce30)" * (cast_expression "(int *)(puVar44 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar44 + 0x2ce30)" ( (binary_expression "puVar44 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "uStack_98 = 0;" (assignment_expression "uStack_98 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "uStack_94 = 0;" (assignment_expression "uStack_94 = 0" identifier = number_literal) ;) (expression_statement "uStack_90 = 0;" (assignment_expression "uStack_90 = 0" identifier = number_literal) ;) (expression_statement "uStack_8c = 0;" (assignment_expression "uStack_8c = 0" identifier = number_literal) ;) (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" identifier = number_literal) ;) (expression_statement "pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac);" (assignment_expression "pcVar46 = (code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac)" identifier = (cast_expression "(code *)(*(int *)(puVar44 + 0x2ce30) + 0x6cac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar44 + 0x2ce30) + 0x6cac)" ( (binary_expression "*(int *)(puVar44 + 0x2ce30) + 0x6cac" (pointer_expression "*(int *)(puVar44 + 0x2ce30)" * (cast_expression "(int *)(puVar44 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar44 + 0x2ce30)" ( (binary_expression "puVar44 + 0x2ce30" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        } while (iVar32 != iVar19);" do (compound_statement "{\n          iVar23 = *piVar37;\n          iVar42 = 0;\n          uStack_ec = 0;\n          if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }\n          prVar27 = prVar3;\n          iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);\n          *(int *)((int)pIVar36 + iVar19) = iVar23;\n          if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar23 = iVar19 * 8 + iVar4;\n          pprVar12 = pprVar33;\n          do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);\n          iVar19 = iVar19 + 4;\n          piVar37 = piVar37 + 3;\n        }" { (expression_statement "iVar23 = *piVar37;" (assignment_expression "iVar23 = *piVar37" identifier = (pointer_expression "*piVar37" * identifier)) ;) (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar23) {\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n            do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);\n          }" { (do_statement "do {\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            } while (iVar42 < iVar23);" do (compound_statement "{\n              iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);\n              if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }\n              iVar42 = iVar42 + 1;\n            }" { (expression_statement "iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4);" (assignment_expression "iVar11 = *(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4)" identifier = (pointer_expression "*(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4)" * (cast_expression "(int *)(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4)" ( (binary_expression "prVar3[1].alloc + *(int *)(piVar37[1] + iVar42 * 4) * 4" (field_expression "prVar3[1].alloc" (subscript_expression "prVar3[1]" identifier [ number_literal ]) . field_identifier) + (binary_expression "*(int *)(piVar37[1] + iVar42 * 4) * 4" (pointer_expression "*(int *)(piVar37[1] + iVar42 * 4)" * (cast_expression "(int *)(piVar37[1] + iVar42 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar37[1] + iVar42 * 4)" ( (binary_expression "piVar37[1] + iVar42 * 4" (subscript_expression "piVar37[1]" identifier [ number_literal ]) + (binary_expression "iVar42 * 4" identifier * number_literal)) )))) * number_literal)) ))))) ;) (if_statement "if (iVar11 != -1) {\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n                prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);\n                iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);\n                if (iStack_f4 != 0) goto LAB_000495c0;\n                iVar23 = *piVar37;\n              }" { (expression_statement "prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc);" (assignment_expression "prVar27 = (re_node_set *)(prVar3[2].alloc + iVar11 * 0xc)" identifier = (cast_expression "(re_node_set *)(prVar3[2].alloc + iVar11 * 0xc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar3[2].alloc + iVar11 * 0xc)" ( (binary_expression "prVar3[2].alloc + iVar11 * 0xc" (field_expression "prVar3[2].alloc" (subscript_expression "prVar3[2]" identifier [ number_literal ]) . field_identifier) + (binary_expression "iVar11 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0);" (assignment_expression "iStack_f4 = (*(code *)(iVar9 + 0x59ac))(&puStack_f0)" identifier = (call_expression "(*(code *)(iVar9 + 0x59ac))(&puStack_f0)" (parenthesized_expression "(*(code *)(iVar9 + 0x59ac))" ( (pointer_expression "*(code *)(iVar9 + 0x59ac)" * (cast_expression "(code *)(iVar9 + 0x59ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x59ac)" ( (binary_expression "iVar9 + 0x59ac" identifier + number_literal) )))) )) (argument_list "(&puStack_f0)" ( (pointer_expression "&puStack_f0" & identifier) )))) ;) (if_statement "if (iStack_f4 != 0) goto LAB_000495c0;" if (parenthesized_expression "(iStack_f4 != 0)" ( (binary_expression "iStack_f4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) (expression_statement "iVar23 = *piVar37;" (assignment_expression "iVar23 = *piVar37" identifier = (pointer_expression "*piVar37" * identifier)) ;) })) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar42 < iVar23)" ( (binary_expression "iVar42 < iVar23" identifier < identifier) )) ;) })) (expression_statement "prVar27 = prVar3;" (assignment_expression "prVar27 = prVar3" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0);" (assignment_expression "iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0)" identifier = (call_expression "(*pcVar46)(&iStack_f4,prVar3,&puStack_f0,0)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(&iStack_f4,prVar3,&puStack_f0,0)" ( (pointer_expression "&iStack_f4" & identifier) , identifier , (pointer_expression "&puStack_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)pIVar36 + iVar19) = iVar23;" (assignment_expression "*(int *)((int)pIVar36 + iVar19) = iVar23" (pointer_expression "*(int *)((int)pIVar36 + iVar19)" * (cast_expression "(int *)((int)pIVar36 + iVar19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar36 + iVar19)" ( (binary_expression "(int)pIVar36 + iVar19" (cast_expression "(int)pIVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n          goto LAB_000495c4;" if (parenthesized_expression "((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))" ( (binary_expression "(iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0)" ( (comma_expression "pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0" (assignment_expression "pcVar45 = *(code **)(puVar44 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) , (binary_expression "iStack_f4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000495c4;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar23 + 0x34) & 1) == 0) {\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }\n          else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }" if (parenthesized_expression "((*(byte *)(iVar23 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar23 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar23 + 0x34) & 1)" ( (binary_expression "*(byte *)(iVar23 + 0x34) & 1" (pointer_expression "*(byte *)(iVar23 + 0x34)" * (cast_expression "(byte *)(iVar23 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x34)" ( (binary_expression "iVar23 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n          }" { (expression_statement "*(int *)((int)pIVar17 + iVar19) = iVar23;" (assignment_expression "*(int *)((int)pIVar17 + iVar19) = iVar23" (pointer_expression "*(int *)((int)pIVar17 + iVar19)" * (cast_expression "(int *)((int)pIVar17 + iVar19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar17 + iVar19)" ( (binary_expression "(int)pIVar17 + iVar19" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;" (assignment_expression "*(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23" (pointer_expression "*(int *)((int)pIVar17 + iVar19 + iVar32)" * (cast_expression "(int *)((int)pIVar17 + iVar19 + iVar32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar17 + iVar19 + iVar32)" ( (binary_expression "(int)pIVar17 + iVar19 + iVar32" (binary_expression "(int)pIVar17 + iVar19" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) }) (else_clause "else {\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }" else (compound_statement "{\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);\n            *(int *)((int)pIVar17 + iVar19) = iVar23;\n            if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }\n            prVar27 = prVar3;\n            iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);\n            *(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;\n            if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;\n          }" { (expression_statement "prVar27 = prVar3;" (assignment_expression "prVar27 = prVar3" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1);" (assignment_expression "iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1)" identifier = (call_expression "(*pcVar46)(&iStack_f4,prVar3,&puStack_f0,1)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(&iStack_f4,prVar3,&puStack_f0,1)" ( (pointer_expression "&iStack_f4" & identifier) , identifier , (pointer_expression "&puStack_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)pIVar17 + iVar19) = iVar23;" (assignment_expression "*(int *)((int)pIVar17 + iVar19) = iVar23" (pointer_expression "*(int *)((int)pIVar17 + iVar19)" * (cast_expression "(int *)((int)pIVar17 + iVar19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar17 + iVar19)" ( (binary_expression "(int)pIVar17 + iVar19" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))\n            goto LAB_000495c4;" if (parenthesized_expression "((iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0))" ( (binary_expression "(iVar23 == 0) && (pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0)" ( (comma_expression "pcVar45 = *(code **)(puVar44 + 0x2d10c), iStack_f4 != 0" (assignment_expression "pcVar45 = *(code **)(puVar44 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) , (binary_expression "iStack_f4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000495c4;" goto statement_identifier ;)) (if_statement "if ((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)) {\n              bVar2 = true;\n            }" if (parenthesized_expression "((iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems))" ( (binary_expression "(iVar23 != *(int *)((int)pIVar36 + iVar19)) && (1 < (int)prVar3[7].elems)" (parenthesized_expression "(iVar23 != *(int *)((int)pIVar36 + iVar19))" ( (binary_expression "iVar23 != *(int *)((int)pIVar36 + iVar19)" identifier != (pointer_expression "*(int *)((int)pIVar36 + iVar19)" * (cast_expression "(int *)((int)pIVar36 + iVar19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar36 + iVar19)" ( (binary_expression "(int)pIVar36 + iVar19" (cast_expression "(int)pIVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) && (parenthesized_expression "(1 < (int)prVar3[7].elems)" ( (binary_expression "1 < (int)prVar3[7].elems" number_literal < (cast_expression "(int)prVar3[7].elems" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar3[7].elems" (subscript_expression "prVar3[7]" identifier [ number_literal ]) . field_identifier))) ))) )) (compound_statement "{\n              bVar2 = true;\n            }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (expression_statement "prVar27 = prVar3;" (assignment_expression "prVar27 = prVar3" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2);" (assignment_expression "iVar23 = (*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2)" identifier = (call_expression "(*pcVar46)(&iStack_f4,prVar3,&puStack_f0,2)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(&iStack_f4,prVar3,&puStack_f0,2)" ( (pointer_expression "&iStack_f4" & identifier) , identifier , (pointer_expression "&puStack_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23;" (assignment_expression "*(int *)((int)pIVar17 + iVar19 + iVar32) = iVar23" (pointer_expression "*(int *)((int)pIVar17 + iVar19 + iVar32)" * (cast_expression "(int *)((int)pIVar17 + iVar19 + iVar32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar17 + iVar19 + iVar32)" ( (binary_expression "(int)pIVar17 + iVar19 + iVar32" (binary_expression "(int)pIVar17 + iVar19" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar23 == 0) && (iStack_f4 != 0)) goto LAB_000495c0;" if (parenthesized_expression "((iVar23 == 0) && (iStack_f4 != 0))" ( (binary_expression "(iVar23 == 0) && (iStack_f4 != 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(iStack_f4 != 0)" ( (binary_expression "iStack_f4 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) }))) (expression_statement "iVar23 = iVar19 * 8 + iVar4;" (assignment_expression "iVar23 = iVar19 * 8 + iVar4" identifier = (binary_expression "iVar19 * 8 + iVar4" (binary_expression "iVar19 * 8" identifier * number_literal) + identifier)) ;) (expression_statement "pprVar12 = pprVar33;" (assignment_expression "pprVar12 = pprVar33" identifier = identifier) ;) (do_statement "do {\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          } while (&prStack_84 != pprVar13);" do (compound_statement "{\n            pprVar13 = pprVar12 + 1;\n            puVar35 = (uint *)(iVar23 + 0xc00);\n            iVar23 = iVar23 + 4;\n            *pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);\n            pprVar12 = pprVar13;\n          }" { (expression_statement "pprVar13 = pprVar12 + 1;" (assignment_expression "pprVar13 = pprVar12 + 1" identifier = (binary_expression "pprVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar35 = (uint *)(iVar23 + 0xc00);" (assignment_expression "puVar35 = (uint *)(iVar23 + 0xc00)" identifier = (cast_expression "(uint *)(iVar23 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc00)" ( (binary_expression "iVar23 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "iVar23 = iVar23 + 4;" (assignment_expression "iVar23 = iVar23 + 4" identifier = (binary_expression "iVar23 + 4" identifier + number_literal)) ;) (expression_statement "*pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35);" (assignment_expression "*pprVar12 = (re_dfa_t *)((uint)*pprVar12 | *puVar35)" (pointer_expression "*pprVar12" * identifier) = (cast_expression "(re_dfa_t *)((uint)*pprVar12 | *puVar35)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*pprVar12 | *puVar35)" ( (binary_expression "(uint)*pprVar12 | *puVar35" (binary_expression "(uint)*pprVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (pointer_expression "*puVar35" * identifier)) )))) ;) (expression_statement "pprVar12 = pprVar13;" (assignment_expression "pprVar12 = pprVar13" identifier = identifier) ;) }) while (parenthesized_expression "(&prStack_84 != pprVar13)" ( (binary_expression "&prStack_84 != pprVar13" (pointer_expression "&prStack_84" & identifier) != identifier) )) ;) (expression_statement "iVar19 = iVar19 + 4;" (assignment_expression "iVar19 = iVar19 + 4" identifier = (binary_expression "iVar19 + 4" identifier + number_literal)) ;) (expression_statement "piVar37 = piVar37 + 3;" (assignment_expression "piVar37 = piVar37 + 3" identifier = (binary_expression "piVar37 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar32 != iVar19)" ( (binary_expression "iVar32 != iVar19" identifier != identifier) )) ;) (if_statement "if (bVar2) {\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }\n        else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          prVar27 = (re_node_set *)0x200;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[4].alloc = (Idx)pIVar14;\n          if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;\n          iVar32 = iVar4;\n          pIVar31 = pIVar14;\n          do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);\n        }" { (expression_statement "prVar27 = (re_node_set *)0x200;" (assignment_expression "prVar27 = (re_node_set *)0x200" identifier = (cast_expression "(re_node_set *)0x200" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);" (assignment_expression "pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4)" identifier = (cast_expression "(Idx *)(**(code **)(puVar44 + 0x2ced8))(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar44 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar44 + 0x2ced8)" * (pointer_expression "*(code **)(puVar44 + 0x2ced8)" * (cast_expression "(code **)(puVar44 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2ced8)" ( (binary_expression "puVar44 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "elem[4].alloc = (Idx)pIVar14;" (assignment_expression "elem[4].alloc = (Idx)pIVar14" (field_expression "elem[4].alloc" (subscript_expression "elem[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Idx)pIVar14" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (pIVar14 == (Idx *)0x0) goto LAB_000495c0;" if (parenthesized_expression "(pIVar14 == (Idx *)0x0)" ( (binary_expression "pIVar14 == (Idx *)0x0" identifier == (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) (expression_statement "iVar32 = iVar4;" (assignment_expression "iVar32 = iVar4" identifier = identifier) ;) (expression_statement "pIVar31 = pIVar14;" (assignment_expression "pIVar31 = pIVar14" identifier = identifier) ;) (do_statement "do {\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          } while (pIVar14 + 0x100 != pIVar31);" do (compound_statement "{\n            prVar20 = *pprVar33;\n            if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }\n            pIVar31 = pIVar31 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            iVar32 = iVar32 + 4;\n          }" { (expression_statement "prVar20 = *pprVar33;" (assignment_expression "prVar20 = *pprVar33" identifier = (pointer_expression "*pprVar33" * identifier)) ;) (if_statement "if (prVar20 != (re_dfa_t *)0x0) {\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }" if (parenthesized_expression "(prVar20 != (re_dfa_t *)0x0)" ( (binary_expression "prVar20 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              prVar27 = (re_node_set *)0x1;\n              pIVar26 = pIVar31;\n              do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);\n            }" { (expression_statement "prVar27 = (re_node_set *)0x1;" (assignment_expression "prVar27 = (re_node_set *)0x1" identifier = (cast_expression "(re_node_set *)0x1" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar26 = pIVar31;" (assignment_expression "pIVar26 = pIVar31" identifier = identifier) ;) (do_statement "do {\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              } while (prVar20 != (re_dfa_t *)0x0);" do (compound_statement "{\n                if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);\n                prVar27 = (re_node_set *)((int)prVar27 << 1);\n                pIVar26 = pIVar26 + 1;\n              }" { (if_statement "if (((uint)prVar20 & 1) != 0) {\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }" if (parenthesized_expression "(((uint)prVar20 & 1) != 0)" ( (binary_expression "((uint)prVar20 & 1) != 0" (parenthesized_expression "((uint)prVar20 & 1)" ( (binary_expression "(uint)prVar20 & 1" (cast_expression "(uint)prVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  iVar19 = 0;\n                  pIVar22 = pIVar17;\n                  pIVar25 = pIVar36;\n                  iVar9 = iVar32;\n                  if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }\n                  *pIVar26 = *pIVar25;\n                  pIVar26[0x100] = *pIVar22;\n                }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pIVar22 = pIVar17;" (assignment_expression "pIVar22 = pIVar17" identifier = identifier) ;) (expression_statement "pIVar25 = pIVar36;" (assignment_expression "pIVar25 = pIVar36" identifier = identifier) ;) (expression_statement "iVar9 = iVar32;" (assignment_expression "iVar9 = iVar32" identifier = identifier) ;) (if_statement "if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }" if (parenthesized_expression "(((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0)" ( (binary_expression "((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0" (parenthesized_expression "((uint)prVar27 & *(uint *)(iVar32 + 0xc00))" ( (binary_expression "(uint)prVar27 & *(uint *)(iVar32 + 0xc00)" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar32 + 0xc00)" * (cast_expression "(uint *)(iVar32 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + 0xc00)" ( (binary_expression "iVar32 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                    do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);\n                    pIVar22 = pIVar17 + iVar19;\n                    pIVar25 = pIVar36 + iVar19;\n                  }" { (do_statement "do {\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    } while (((uint)prVar27 & *puVar35) == 0);" do (compound_statement "{\n                      puVar35 = (uint *)(iVar9 + 0xc20);\n                      iVar19 = iVar19 + 1;\n                      iVar9 = iVar9 + 0x20;\n                    }" { (expression_statement "puVar35 = (uint *)(iVar9 + 0xc20);" (assignment_expression "puVar35 = (uint *)(iVar9 + 0xc20)" identifier = (cast_expression "(uint *)(iVar9 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc20)" ( (binary_expression "iVar9 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar9 + 0x20;" (assignment_expression "iVar9 = iVar9 + 0x20" identifier = (binary_expression "iVar9 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)prVar27 & *puVar35) == 0)" ( (binary_expression "((uint)prVar27 & *puVar35) == 0" (parenthesized_expression "((uint)prVar27 & *puVar35)" ( (binary_expression "(uint)prVar27 & *puVar35" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar35" * identifier)) )) == number_literal) )) ;) (expression_statement "pIVar22 = pIVar17 + iVar19;" (assignment_expression "pIVar22 = pIVar17 + iVar19" identifier = (binary_expression "pIVar17 + iVar19" identifier + identifier)) ;) (expression_statement "pIVar25 = pIVar36 + iVar19;" (assignment_expression "pIVar25 = pIVar36 + iVar19" identifier = (binary_expression "pIVar36 + iVar19" identifier + identifier)) ;) })) (expression_statement "*pIVar26 = *pIVar25;" (assignment_expression "*pIVar26 = *pIVar25" (pointer_expression "*pIVar26" * identifier) = (pointer_expression "*pIVar25" * identifier)) ;) (expression_statement "pIVar26[0x100] = *pIVar22;" (assignment_expression "pIVar26[0x100] = *pIVar22" (subscript_expression "pIVar26[0x100]" identifier [ number_literal ]) = (pointer_expression "*pIVar22" * identifier)) ;) })) (expression_statement "prVar20 = (re_dfa_t *)((uint)prVar20 >> 1);" (assignment_expression "prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)" identifier = (cast_expression "(re_dfa_t *)((uint)prVar20 >> 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar20 >> 1)" ( (binary_expression "(uint)prVar20 >> 1" (cast_expression "(uint)prVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "prVar27 = (re_node_set *)((int)prVar27 << 1);" (assignment_expression "prVar27 = (re_node_set *)((int)prVar27 << 1)" identifier = (cast_expression "(re_node_set *)((int)prVar27 << 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar27 << 1)" ( (binary_expression "(int)prVar27 << 1" (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pIVar26 = pIVar26 + 1;" (assignment_expression "pIVar26 = pIVar26 + 1" identifier = (binary_expression "pIVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(prVar20 != (re_dfa_t *)0x0)" ( (binary_expression "prVar20 != (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 "pIVar31 = pIVar31 + 0x20;" (assignment_expression "pIVar31 = pIVar31 + 0x20" identifier = (binary_expression "pIVar31 + 0x20" identifier + number_literal)) ;) (expression_statement "pprVar33 = pprVar33 + 1;" (assignment_expression "pprVar33 = pprVar33 + 1" identifier = (binary_expression "pprVar33 + 1" identifier + number_literal)) ;) (expression_statement "iVar32 = iVar32 + 4;" (assignment_expression "iVar32 = iVar32 + 4" identifier = (binary_expression "iVar32 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pIVar14 + 0x100 != pIVar31)" ( (binary_expression "pIVar14 + 0x100 != pIVar31" (binary_expression "pIVar14 + 0x100" identifier + number_literal) != identifier) )) ;) }) (else_clause "else {\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }" else (compound_statement "{\n          prVar27 = (re_node_set *)0x100;\n          pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);\n          elem[3].elems = pIVar14;\n          if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }\n          prVar3 = prVar3 + 8;\n          iVar9 = 0;\n          iVar32 = iVar4;\n          do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);\n        }" { (expression_statement "prVar27 = (re_node_set *)0x100;" (assignment_expression "prVar27 = (re_node_set *)0x100" identifier = (cast_expression "(re_node_set *)0x100" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4);" (assignment_expression "pIVar14 = (Idx *)(**(code **)(puVar44 + 0x2ced8))(4)" identifier = (cast_expression "(Idx *)(**(code **)(puVar44 + 0x2ced8))(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar44 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar44 + 0x2ced8)" * (pointer_expression "*(code **)(puVar44 + 0x2ced8)" * (cast_expression "(code **)(puVar44 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2ced8)" ( (binary_expression "puVar44 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "elem[3].elems = pIVar14;" (assignment_expression "elem[3].elems = pIVar14" (field_expression "elem[3].elems" (subscript_expression "elem[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (if_statement "if (pIVar14 == (Idx *)0x0) {\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }" if (parenthesized_expression "(pIVar14 == (Idx *)0x0)" ( (binary_expression "pIVar14 == (Idx *)0x0" identifier == (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar45)(pIVar36);\n            iVar32 = iStack_e8;\n            goto LAB_000495d4;\n          }" { (labeled_statement "LAB_000495c0:\n            pcVar45 = *(code **)(puVar44 + 0x2d10c);" statement_identifier : (expression_statement "pcVar45 = *(code **)(puVar44 + 0x2d10c);" (assignment_expression "pcVar45 = *(code **)(puVar44 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000495c4:\n            (*pcVar45)(pIVar36);" statement_identifier : (expression_statement "(*pcVar45)(pIVar36);" (call_expression "(*pcVar45)(pIVar36)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(pIVar36)" ( identifier ))) ;)) (expression_statement "iVar32 = iStack_e8;" (assignment_expression "iVar32 = iStack_e8" identifier = identifier) ;) (goto_statement "goto LAB_000495d4;" goto statement_identifier ;) })) (expression_statement "prVar3 = prVar3 + 8;" (assignment_expression "prVar3 = prVar3 + 8" identifier = (binary_expression "prVar3 + 8" identifier + number_literal)) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar32 = iVar4;" (assignment_expression "iVar32 = iVar4" identifier = identifier) ;) (do_statement "do {\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          } while (iVar9 != 0x100);" do (compound_statement "{\n            prVar27 = (re_node_set *)0x1;\n            iVar19 = iVar9;\n            for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }\n            iVar9 = iVar9 + 0x20;\n            pprVar33 = pprVar33 + 1;\n            prVar3 = (re_node_set *)&prVar3->nelem;\n            iVar32 = iVar32 + 4;\n          }" { (expression_statement "prVar27 = (re_node_set *)0x1;" (assignment_expression "prVar27 = (re_node_set *)0x1" identifier = (cast_expression "(re_node_set *)0x1" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = iVar9;" (assignment_expression "iVar19 = iVar9" identifier = identifier) ;) (for_statement "for (prVar20 = *pprVar33; prVar20 != (re_dfa_t *)0x0;\n                prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)) {\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }" for ( (assignment_expression "prVar20 = *pprVar33" identifier = (pointer_expression "*pprVar33" * identifier)) ; (binary_expression "prVar20 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "prVar20 = (re_dfa_t *)((uint)prVar20 >> 1)" identifier = (cast_expression "(re_dfa_t *)((uint)prVar20 >> 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)prVar20 >> 1)" ( (binary_expression "(uint)prVar20 >> 1" (cast_expression "(uint)prVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ) (compound_statement "{\n              if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }\n              prVar27 = (re_node_set *)((int)prVar27 << 1);\n              iVar19 = iVar19 + 1;\n            }" { (if_statement "if (((uint)prVar20 & 1) != 0) {\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }" if (parenthesized_expression "(((uint)prVar20 & 1) != 0)" ( (binary_expression "((uint)prVar20 & 1) != 0" (parenthesized_expression "((uint)prVar20 & 1)" ( (binary_expression "(uint)prVar20 & 1" (cast_expression "(uint)prVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar42 = 0;\n                iVar23 = iVar32;\n                if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }\n                if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }\n              }" { (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = iVar32;" (assignment_expression "iVar23 = iVar32" identifier = identifier) ;) (if_statement "if (((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0) {\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }" if (parenthesized_expression "(((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0)" ( (binary_expression "((uint)prVar27 & *(uint *)(iVar32 + 0xc00)) == 0" (parenthesized_expression "((uint)prVar27 & *(uint *)(iVar32 + 0xc00))" ( (binary_expression "(uint)prVar27 & *(uint *)(iVar32 + 0xc00)" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar32 + 0xc00)" * (cast_expression "(uint *)(iVar32 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + 0xc00)" ( (binary_expression "iVar32 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                  do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);\n                  iVar42 = iVar42 * 4;\n                }" { (do_statement "do {\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  } while (((uint)prVar27 & *puVar35) == 0);" do (compound_statement "{\n                    puVar35 = (uint *)(iVar23 + 0xc20);\n                    iVar42 = iVar42 + 1;\n                    iVar23 = iVar23 + 0x20;\n                  }" { (expression_statement "puVar35 = (uint *)(iVar23 + 0xc20);" (assignment_expression "puVar35 = (uint *)(iVar23 + 0xc20)" identifier = (cast_expression "(uint *)(iVar23 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc20)" ( (binary_expression "iVar23 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar42 = iVar42 + 1;" (assignment_expression "iVar42 = iVar42 + 1" identifier = (binary_expression "iVar42 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = iVar23 + 0x20;" (assignment_expression "iVar23 = iVar23 + 0x20" identifier = (binary_expression "iVar23 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)prVar27 & *puVar35) == 0)" ( (binary_expression "((uint)prVar27 & *puVar35) == 0" (parenthesized_expression "((uint)prVar27 & *puVar35)" ( (binary_expression "(uint)prVar27 & *puVar35" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar35" * identifier)) )) == number_literal) )) ;) (expression_statement "iVar42 = iVar42 * 4;" (assignment_expression "iVar42 = iVar42 * 4" identifier = (binary_expression "iVar42 * 4" identifier * number_literal)) ;) })) (if_statement "if (((uint)prVar27 & prVar3->alloc) == 0) {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }\n                else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }" if (parenthesized_expression "(((uint)prVar27 & prVar3->alloc) == 0)" ( (binary_expression "((uint)prVar27 & prVar3->alloc) == 0" (parenthesized_expression "((uint)prVar27 & prVar3->alloc)" ( (binary_expression "(uint)prVar27 & prVar3->alloc" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & (field_expression "prVar3->alloc" identifier -> field_identifier)) )) == number_literal) )) (compound_statement "{\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);\n                }" { (expression_statement "pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42);" (assignment_expression "pIVar14[iVar19] = *(Idx *)((int)pIVar36 + iVar42)" (subscript_expression "pIVar14[iVar19]" identifier [ identifier ]) = (pointer_expression "*(Idx *)((int)pIVar36 + iVar42)" * (cast_expression "(Idx *)((int)pIVar36 + iVar42)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar36 + iVar42)" ( (binary_expression "(int)pIVar36 + iVar42" (cast_expression "(int)pIVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) (else_clause "else {\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }" else (compound_statement "{\n                  pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);\n                }" { (expression_statement "pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42);" (assignment_expression "pIVar14[iVar19] = *(Idx *)((int)pIVar17 + iVar42)" (subscript_expression "pIVar14[iVar19]" identifier [ identifier ]) = (pointer_expression "*(Idx *)((int)pIVar17 + iVar42)" * (cast_expression "(Idx *)((int)pIVar17 + iVar42)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar17 + iVar42)" ( (binary_expression "(int)pIVar17 + iVar42" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }))) })) (expression_statement "prVar27 = (re_node_set *)((int)prVar27 << 1);" (assignment_expression "prVar27 = (re_node_set *)((int)prVar27 << 1)" identifier = (cast_expression "(re_node_set *)((int)prVar27 << 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar27 << 1)" ( (binary_expression "(int)prVar27 << 1" (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar9 = iVar9 + 0x20;" (assignment_expression "iVar9 = iVar9 + 0x20" identifier = (binary_expression "iVar9 + 0x20" identifier + number_literal)) ;) (expression_statement "pprVar33 = pprVar33 + 1;" (assignment_expression "pprVar33 = pprVar33 + 1" identifier = (binary_expression "pprVar33 + 1" identifier + number_literal)) ;) (expression_statement "prVar3 = (re_node_set *)&prVar3->nelem;" (assignment_expression "prVar3 = (re_node_set *)&prVar3->nelem" identifier = (cast_expression "(re_node_set *)&prVar3->nelem" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar3->nelem" & (field_expression "prVar3->nelem" identifier -> field_identifier)))) ;) (expression_statement "iVar32 = iVar32 + 4;" (assignment_expression "iVar32 = iVar32 + 4" identifier = (binary_expression "iVar32 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0x100)" ( (binary_expression "iVar9 != 0x100" identifier != number_literal) )) ;) }))) (expression_statement "pcVar46 = *(code **)(puVar44 + 0x2d10c);" (assignment_expression "pcVar46 = *(code **)(puVar44 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) ;) (if_statement "if ((int)prStack_a4 << 0x15 < 0) {\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }" if (parenthesized_expression "((int)prStack_a4 << 0x15 < 0)" ( (binary_expression "(int)prStack_a4 << 0x15 < 0" (binary_expression "(int)prStack_a4 << 0x15" (cast_expression "(int)prStack_a4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) < number_literal) )) (compound_statement "{\n          prVar27 = (re_node_set *)0x0;\n          do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);\n          pcVar46 = *(code **)(puVar44 + 0x2d10c);\n        }" { (expression_statement "prVar27 = (re_node_set *)0x0;" (assignment_expression "prVar27 = (re_node_set *)0x0" identifier = (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          } while (prVar27 != prVar38);" do (compound_statement "{\n            if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }\n            prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);\n            puVar8 = puVar8 + 8;\n          }" { (if_statement "if ((*puVar8 & 0x400) != 0) {\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }" if (parenthesized_expression "((*puVar8 & 0x400) != 0)" ( (binary_expression "(*puVar8 & 0x400) != 0" (parenthesized_expression "(*puVar8 & 0x400)" ( (binary_expression "*puVar8 & 0x400" (pointer_expression "*puVar8" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];\n              pIVar14[10] = IVar5;\n              if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }\n              break;\n            }" { (expression_statement "IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))];" (assignment_expression "IVar5 = pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))]" identifier = (subscript_expression "pIVar17[(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))]" identifier [ (cast_expression "(int)(puVar10 + (int)((int)&prVar27[-1].elems + 3))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar10 + (int)((int)&prVar27[-1].elems + 3))" ( (binary_expression "puVar10 + (int)((int)&prVar27[-1].elems + 3)" identifier + (cast_expression "(int)((int)&prVar27[-1].elems + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&prVar27[-1].elems + 3)" ( (binary_expression "(int)&prVar27[-1].elems + 3" (cast_expression "(int)&prVar27[-1].elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar27[-1].elems" & (field_expression "prVar27[-1].elems" (subscript_expression "prVar27[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ))) ])) ;) (expression_statement "pIVar14[10] = IVar5;" (assignment_expression "pIVar14[10] = IVar5" (subscript_expression "pIVar14[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar2) {\n                pIVar14[0x10a] = IVar5;\n              }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                pIVar14[0x10a] = IVar5;\n              }" { (expression_statement "pIVar14[0x10a] = IVar5;" (assignment_expression "pIVar14[0x10a] = IVar5" (subscript_expression "pIVar14[0x10a]" identifier [ number_literal ]) = identifier) ;) })) (break_statement "break;" break ;) })) (expression_statement "prVar27 = (re_node_set *)((int)&prVar27->alloc + 1);" (assignment_expression "prVar27 = (re_node_set *)((int)&prVar27->alloc + 1)" identifier = (cast_expression "(re_node_set *)((int)&prVar27->alloc + 1)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar27->alloc + 1)" ( (binary_expression "(int)&prVar27->alloc + 1" (cast_expression "(int)&prVar27->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar27->alloc" & (field_expression "prVar27->alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "puVar8 = puVar8 + 8;" (assignment_expression "puVar8 = puVar8 + 8" identifier = (binary_expression "puVar8 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(prVar27 != prVar38)" ( (binary_expression "prVar27 != prVar38" identifier != identifier) )) ;) (expression_statement "pcVar46 = *(code **)(puVar44 + 0x2d10c);" (assignment_expression "pcVar46 = *(code **)(puVar44 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar46)(pIVar36);" (call_expression "(*pcVar46)(pIVar36)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(pIVar36)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iStack_e8);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iStack_e8)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iStack_e8)" ( identifier ))) ;) (expression_statement "iVar32 = iVar4;" (assignment_expression "iVar32 = iVar4" identifier = identifier) ;) (do_statement "do {\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        } while (iVar4 + (int)prVar38 * 0xc != iVar9);" do (compound_statement "{\n          iVar9 = iVar32 + 0xc;\n          (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n          iVar32 = iVar9;\n        }" { (expression_statement "iVar9 = iVar32 + 0xc;" (assignment_expression "iVar9 = iVar32 + 0xc" identifier = (binary_expression "iVar32 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));" (call_expression "(**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8))" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar32 + 8))" ( (pointer_expression "*(undefined4 *)(iVar32 + 8)" * (cast_expression "(undefined4 *)(iVar32 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + 8)" ( (binary_expression "iVar32 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar32 = iVar9;" (assignment_expression "iVar32 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 + (int)prVar38 * 0xc != iVar9)" ( (binary_expression "iVar4 + (int)prVar38 * 0xc != iVar9" (binary_expression "iVar4 + (int)prVar38 * 0xc" identifier + (binary_expression "(int)prVar38 * 0xc" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iVar4);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iVar4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "rVar6 = _REG_NOMATCH;" (assignment_expression "rVar6 = _REG_NOMATCH" identifier = identifier) ;) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000495d4:\n    (**(code **)(puVar44 + 0x2d10c))(iVar32);" statement_identifier : (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iVar32);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iVar32)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar32)" ( identifier ))) ;)) (expression_statement "iVar32 = iVar4;" (assignment_expression "iVar32 = iVar4" identifier = identifier) ;) (do_statement "do {\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    } while (iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4);" do (compound_statement "{\n      iVar9 = iVar32 + 0xc;\n      (**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));\n      iVar32 = iVar9;\n    }" { (expression_statement "iVar9 = iVar32 + 0xc;" (assignment_expression "iVar9 = iVar32 + 0xc" identifier = (binary_expression "iVar32 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8));" (call_expression "(**(code **)(puVar44 + 0x2d10c))(*(undefined4 *)(iVar32 + 8))" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar32 + 8))" ( (pointer_expression "*(undefined4 *)(iVar32 + 8)" * (cast_expression "(undefined4 *)(iVar32 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + 8)" ( (binary_expression "iVar32 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar32 = iVar9;" (assignment_expression "iVar32 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4)" ( (binary_expression "iVar9 != (int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4" identifier != (binary_expression "(int)((int)&prVar38->alloc + iStack_118) * 4 + iVar4" (binary_expression "(int)((int)&prVar38->alloc + iStack_118) * 4" (cast_expression "(int)((int)&prVar38->alloc + iStack_118)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&prVar38->alloc + iStack_118)" ( (binary_expression "(int)&prVar38->alloc + iStack_118" (cast_expression "(int)&prVar38->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->alloc" & (field_expression "prVar38->alloc" identifier -> field_identifier))) + identifier) ))) * number_literal) + identifier)) )) ;) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iVar4);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iVar4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) (labeled_statement "LAB_00048f5c:\n    rVar6 = _REG_NOERROR;" statement_identifier : (expression_statement "rVar6 = _REG_NOERROR;" (assignment_expression "rVar6 = _REG_NOERROR" identifier = identifier) ;)) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) }))) (expression_statement "(**(code **)(puVar44 + 0x2d10c))(iVar4);" (call_expression "(**(code **)(puVar44 + 0x2d10c))(iVar4)" (parenthesized_expression "(**(code **)(puVar44 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar44 + 0x2d10c)" * (pointer_expression "*(code **)(puVar44 + 0x2d10c)" * (cast_expression "(code **)(puVar44 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar44 + 0x2d10c)" ( (binary_expression "puVar44 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) (if_statement "if (prVar38 != (re_node_set *)0x0) {\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }" if (parenthesized_expression "(prVar38 != (re_node_set *)0x0)" ( (binary_expression "prVar38 != (re_node_set *)0x0" identifier != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    rVar6 = _REG_NOERROR;\n    goto LAB_00048f60;\n  }" { (expression_statement "rVar6 = _REG_NOERROR;" (assignment_expression "rVar6 = _REG_NOERROR" identifier = identifier) ;) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) })) (goto_statement "goto LAB_00049784;" goto statement_identifier ;) })))
(translation_unit "uint FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}\n\n" (function_definition "uint FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" type_identifier (function_declarator "FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)" identifier (parameter_list "(int *param_1,uint *******param_2,int param_3,uint *******param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *******param_2" type_identifier (pointer_declarator "*******param_2" * (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))))))) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint *******param_4" type_identifier (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint *******pppppppuVar3;" type_identifier (pointer_declarator "*******pppppppuVar3" * (pointer_declarator "******pppppppuVar3" * (pointer_declarator "*****pppppppuVar3" * (pointer_declarator "****pppppppuVar3" * (pointer_declarator "***pppppppuVar3" * (pointer_declarator "**pppppppuVar3" * (pointer_declarator "*pppppppuVar3" * identifier))))))) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int **ppiVar9;" primitive_type (pointer_declarator "**ppiVar9" * (pointer_declarator "*ppiVar9" * identifier)) ;) (declaration "int **ppiVar10;" primitive_type (pointer_declarator "**ppiVar10" * (pointer_declarator "*ppiVar10" * identifier)) ;) (declaration "uint ******ppppppuVar11;" type_identifier (pointer_declarator "******ppppppuVar11" * (pointer_declarator "*****ppppppuVar11" * (pointer_declarator "****ppppppuVar11" * (pointer_declarator "***ppppppuVar11" * (pointer_declarator "**ppppppuVar11" * (pointer_declarator "*ppppppuVar11" * identifier)))))) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint *******pppppppuVar14;" type_identifier (pointer_declarator "*******pppppppuVar14" * (pointer_declarator "******pppppppuVar14" * (pointer_declarator "*****pppppppuVar14" * (pointer_declarator "****pppppppuVar14" * (pointer_declarator "***pppppppuVar14" * (pointer_declarator "**pppppppuVar14" * (pointer_declarator "*pppppppuVar14" * identifier))))))) ;) (declaration "uint *******pppppppuVar15;" type_identifier (pointer_declarator "*******pppppppuVar15" * (pointer_declarator "******pppppppuVar15" * (pointer_declarator "*****pppppppuVar15" * (pointer_declarator "****pppppppuVar15" * (pointer_declarator "***pppppppuVar15" * (pointer_declarator "**pppppppuVar15" * (pointer_declarator "*pppppppuVar15" * identifier))))))) ;) (declaration "uint *****pppppuVar16;" type_identifier (pointer_declarator "*****pppppuVar16" * (pointer_declarator "****pppppuVar16" * (pointer_declarator "***pppppuVar16" * (pointer_declarator "**pppppuVar16" * (pointer_declarator "*pppppuVar16" * identifier))))) ;) (declaration "uint *******pppppppuVar17;" type_identifier (pointer_declarator "*******pppppppuVar17" * (pointer_declarator "******pppppppuVar17" * (pointer_declarator "*****pppppppuVar17" * (pointer_declarator "****pppppppuVar17" * (pointer_declarator "***pppppppuVar17" * (pointer_declarator "**pppppppuVar17" * (pointer_declarator "*pppppppuVar17" * identifier))))))) ;) (declaration "uint ******ppppppuVar18;" type_identifier (pointer_declarator "******ppppppuVar18" * (pointer_declarator "*****ppppppuVar18" * (pointer_declarator "****ppppppuVar18" * (pointer_declarator "***ppppppuVar18" * (pointer_declarator "**ppppppuVar18" * (pointer_declarator "*ppppppuVar18" * identifier)))))) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint *******pppppppuVar20;" type_identifier (pointer_declarator "*******pppppppuVar20" * (pointer_declarator "******pppppppuVar20" * (pointer_declarator "*****pppppppuVar20" * (pointer_declarator "****pppppppuVar20" * (pointer_declarator "***pppppppuVar20" * (pointer_declarator "**pppppppuVar20" * (pointer_declarator "*pppppppuVar20" * identifier))))))) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint ****ppppuVar24;" type_identifier (pointer_declarator "****ppppuVar24" * (pointer_declarator "***ppppuVar24" * (pointer_declarator "**ppppuVar24" * (pointer_declarator "*ppppuVar24" * identifier)))) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint ******ppppppuVar26;" type_identifier (pointer_declarator "******ppppppuVar26" * (pointer_declarator "*****ppppppuVar26" * (pointer_declarator "****ppppppuVar26" * (pointer_declarator "***ppppppuVar26" * (pointer_declarator "**ppppppuVar26" * (pointer_declarator "*ppppppuVar26" * identifier)))))) ;) (declaration "uint *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int **ppiVar30;" primitive_type (pointer_declarator "**ppiVar30" * (pointer_declarator "*ppiVar30" * identifier)) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined4 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int *piVar33;" primitive_type (pointer_declarator "*piVar33" * identifier) ;) (declaration "uint *******pppppppuVar34;" type_identifier (pointer_declarator "*******pppppppuVar34" * (pointer_declarator "******pppppppuVar34" * (pointer_declarator "*****pppppppuVar34" * (pointer_declarator "****pppppppuVar34" * (pointer_declarator "***pppppppuVar34" * (pointer_declarator "**pppppppuVar34" * (pointer_declarator "*pppppppuVar34" * identifier))))))) ;) (declaration "uint ******ppppppuVar35;" type_identifier (pointer_declarator "******ppppppuVar35" * (pointer_declarator "*****ppppppuVar35" * (pointer_declarator "****ppppppuVar35" * (pointer_declarator "***ppppppuVar35" * (pointer_declarator "**ppppppuVar35" * (pointer_declarator "*ppppppuVar35" * identifier)))))) ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "uint *******unaff_s2;" type_identifier (pointer_declarator "*******unaff_s2" * (pointer_declarator "******unaff_s2" * (pointer_declarator "*****unaff_s2" * (pointer_declarator "****unaff_s2" * (pointer_declarator "***unaff_s2" * (pointer_declarator "**unaff_s2" * (pointer_declarator "*unaff_s2" * identifier))))))) ;) (declaration "uint *******pppppppuVar37;" type_identifier (pointer_declarator "*******pppppppuVar37" * (pointer_declarator "******pppppppuVar37" * (pointer_declarator "*****pppppppuVar37" * (pointer_declarator "****pppppppuVar37" * (pointer_declarator "***pppppppuVar37" * (pointer_declarator "**pppppppuVar37" * (pointer_declarator "*pppppppuVar37" * identifier))))))) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "undefined *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "uint *******unaff_s5;" type_identifier (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "undefined *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 uVar41;" type_identifier identifier ;) (declaration "int local_124;" primitive_type identifier ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "int local_f4;" primitive_type identifier ;) (declaration "undefined1 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "uint *******local_e4;" type_identifier (pointer_declarator "*******local_e4" * (pointer_declarator "******local_e4" * (pointer_declarator "*****local_e4" * (pointer_declarator "****local_e4" * (pointer_declarator "***local_e4" * (pointer_declarator "**local_e4" * (pointer_declarator "*local_e4" * identifier))))))) ;) (declaration "uint local_e0;" type_identifier identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "uint local_d8;" type_identifier identifier ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "uint local_d0;" type_identifier identifier ;) (declaration "uint local_cc;" type_identifier identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint ******local_c4;" type_identifier (pointer_declarator "******local_c4" * (pointer_declarator "*****local_c4" * (pointer_declarator "****local_c4" * (pointer_declarator "***local_c4" * (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)))))) ;) (declaration "uint local_c0;" type_identifier identifier ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "uint local_b4;" type_identifier identifier ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "int *local_a4;" primitive_type (pointer_declarator "*local_a4" * identifier) ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "uint local_9c;" type_identifier identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *******local_78;" type_identifier (pointer_declarator "*******local_78" * (pointer_declarator "******local_78" * (pointer_declarator "*****local_78" * (pointer_declarator "****local_78" * (pointer_declarator "***local_78" * (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier))))))) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint *******local_6c;" type_identifier (pointer_declarator "*******local_6c" * (pointer_declarator "******local_6c" * (pointer_declarator "*****local_6c" * (pointer_declarator "****local_6c" * (pointer_declarator "***local_6c" * (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier))))))) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "int *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "uint ******local_30;" type_identifier (pointer_declarator "******local_30" * (pointer_declarator "*****local_30" * (pointer_declarator "****local_30" * (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)))))) ;) (declaration "uint *******local_2c;" type_identifier (pointer_declarator "*******local_2c" * (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier))))))) ;) (expression_statement "puVar39 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar39 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (uint ******)0x0;" (assignment_expression "local_30 = (uint ******)0x0" identifier = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "iVar36 = param_1[7] + (int)param_2 * 0xc;" (assignment_expression "iVar36 = param_1[7] + (int)param_2 * 0xc" identifier = (binary_expression "param_1[7] + (int)param_2 * 0xc" (subscript_expression "param_1[7]" identifier [ number_literal ]) + (binary_expression "(int)param_2 * 0xc" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(uint ********)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(uint ********)PTR___stack_chk_guard_00075be8" * (cast_expression "(uint ********)PTR___stack_chk_guard_00075be8" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" identifier = (pointer_expression "*(int *)(iVar36 + 4)" * (cast_expression "(int *)(iVar36 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 4)" ( (binary_expression "iVar36 + 4" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar20 = param_2;" (assignment_expression "pppppppuVar20 = param_2" identifier = identifier) ;) (expression_statement "puVar38 = PTR_LAB_00075920;" (assignment_expression "puVar38 = PTR_LAB_00075920" identifier = identifier) ;) (if_statement "if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }" { (expression_statement "unaff_s7 = &local_38;" (assignment_expression "unaff_s7 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = (uint *******)(iVar36 + 8);" (assignment_expression "unaff_s5 = (uint *******)(iVar36 + 8)" identifier = (cast_expression "(uint *******)(iVar36 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ;) (expression_statement "puVar38 = PTR_LAB_00075920 + 0x5230;" (assignment_expression "puVar38 = PTR_LAB_00075920 + 0x5230" identifier = (binary_expression "PTR_LAB_00075920 + 0x5230" identifier + number_literal)) ;) (expression_statement "unaff_s6 = PTR_LAB_00075920 + 0x6140;" (assignment_expression "unaff_s6 = PTR_LAB_00075920 + 0x6140" identifier = (binary_expression "PTR_LAB_00075920 + 0x6140" identifier + number_literal)) ;) (do_statement "do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);" do (compound_statement "{\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    }" { (expression_statement "pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);" (assignment_expression "pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" identifier = (pointer_expression "*(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" * (cast_expression "(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(*(int *)(iVar36 + 8) + unaff_s0 * 4)" ( (binary_expression "*(int *)(iVar36 + 8) + unaff_s0 * 4" (pointer_expression "*(int *)(iVar36 + 8)" * (cast_expression "(int *)(iVar36 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) + (binary_expression "unaff_s0 * 4" identifier * number_literal)) ))))) ;) (if_statement "if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))" ( (binary_expression "(param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0)" (parenthesized_expression "(param_2 != pppppppuVar3)" ( (binary_expression "param_2 != pppppppuVar3" identifier != identifier) )) && (parenthesized_expression "((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0)" ( (binary_expression "(*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0" (parenthesized_expression "(*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8)" ( (binary_expression "*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8" (pointer_expression "*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4)" * (cast_expression "(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (int)pppppppuVar3 * 8 + 4)" ( (binary_expression "*param_1 + (int)pppppppuVar3 * 8 + 4" (binary_expression "*param_1 + (int)pppppppuVar3 * 8" (pointer_expression "*param_1" * identifier) + (binary_expression "(int)pppppppuVar3 * 8" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" { (expression_statement "iVar28 = (int)pppppppuVar3 * 0xc;" (assignment_expression "iVar28 = (int)pppppppuVar3 * 0xc" identifier = (binary_expression "(int)pppppppuVar3 * 0xc" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar31 = param_1[5] + iVar28;" (assignment_expression "iVar31 = param_1[5] + iVar28" identifier = (binary_expression "param_1[5] + iVar28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "puVar32 = *(undefined4 **)(iVar31 + 8);" (assignment_expression "puVar32 = *(undefined4 **)(iVar31 + 8)" identifier = (pointer_expression "*(undefined4 **)(iVar31 + 8)" * (cast_expression "(undefined4 **)(iVar31 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 8)" ( (binary_expression "iVar31 + 8" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar20 = unaff_s5;" (assignment_expression "pppppppuVar20 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);" (assignment_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32)" identifier = (call_expression "FUN_00045230(iVar25,unaff_s5,*puVar32)" identifier (argument_list "(iVar25,unaff_s5,*puVar32)" ( identifier , identifier , (pointer_expression "*puVar32" * identifier) )))) ;) (if_statement "if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar31 + 4) < 2)" ( (binary_expression "*(int *)(iVar31 + 4) < 2" (pointer_expression "*(int *)(iVar31 + 4)" * (cast_expression "(int *)(iVar31 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 4)" ( (binary_expression "iVar31 + 4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }" { (if_statement "if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }" { (expression_statement "pppppppuVar20 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar20 = (uint *******)(param_3 + 8)" identifier = (cast_expression "(uint *******)(param_3 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier = (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier (argument_list "(*(undefined4 *)(param_3 + 4))" ( (pointer_expression "*(undefined4 *)(param_3 + 4)" * (cast_expression "(undefined4 *)(param_3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 != 0) goto LAB_000488c0;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000488c0;" goto statement_identifier ;)) })) }) (else_clause "else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" else (if_statement "if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" if (parenthesized_expression "((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0))" ( (binary_expression "(iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8)" identifier = (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8)" identifier (argument_list "(*(undefined4 *)(param_3 + 4),param_3 + 8)" ( (pointer_expression "*(undefined4 *)(param_3 + 4)" * (cast_expression "(undefined4 *)(param_3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) , (binary_expression "param_3 + 8" identifier + number_literal) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }" { (labeled_statement "LAB_000488c0:\n          iVar25 = param_1[7];" statement_identifier : (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_000488c4:\n          pppppppuVar20 = param_4;" statement_identifier : (expression_statement "pppppppuVar20 = param_4;" (assignment_expression "pppppppuVar20 = param_4" identifier = identifier) ;)) (expression_statement "uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);" (assignment_expression "uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28)" identifier = (call_expression "FUN_00046140(unaff_s7,param_4,iVar25 + iVar28)" identifier (argument_list "(unaff_s7,param_4,iVar25 + iVar28)" ( identifier , identifier , (binary_expression "iVar25 + iVar28" identifier + identifier) )))) ;) (if_statement "if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }" { (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (goto_statement "goto LAB_00048a80;" goto statement_identifier ;) })) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" identifier = (pointer_expression "*(int *)(iVar36 + 4)" * (cast_expression "(int *)(iVar36 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 4)" ( (binary_expression "iVar36 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" else (compound_statement "{\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" { (expression_statement "pppppppuVar20 = unaff_s5;" (assignment_expression "pppppppuVar20 = unaff_s5" identifier = identifier) ;) (if_statement "if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }" if (parenthesized_expression "((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0))" ( (binary_expression "(0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)" (parenthesized_expression "(0 < (int)puVar32[1])" ( (binary_expression "0 < (int)puVar32[1]" number_literal < (cast_expression "(int)puVar32[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar32[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)" ( (comma_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0" (assignment_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1])" identifier = (call_expression "FUN_00045230(iVar25,unaff_s5,puVar32[1])" identifier (argument_list "(iVar25,unaff_s5,puVar32[1])" ( identifier , identifier , (subscript_expression "puVar32[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }" { (expression_statement "pppppppuVar20 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar20 = (uint *******)(param_3 + 8)" identifier = (cast_expression "(uint *******)(param_3 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier = (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4))" identifier (argument_list "(*(undefined4 *)(param_3 + 4))" ( (pointer_expression "*(undefined4 *)(param_3 + 4)" * (cast_expression "(undefined4 *)(param_3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }" { (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000488c4;" goto statement_identifier ;) })) })) }))))) })) (expression_statement "unaff_s0 = unaff_s0 + 1;" (assignment_expression "unaff_s0 = unaff_s0 + 1" identifier = (binary_expression "unaff_s0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s0 < iVar25)" ( (binary_expression "unaff_s0 < iVar25" identifier < identifier) )) ;) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) (expression_statement "unaff_s3 = param_3;" (assignment_expression "unaff_s3 = param_3" identifier = identifier) ;) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" identifier = identifier) ;) (if_statement "if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar28 = param_3 + 4;" (assignment_expression "iVar28 = param_3 + 4" identifier = (binary_expression "param_3 + 4" identifier + number_literal)) ;) (expression_statement "pppppppuVar3 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar3 = (uint *******)(param_3 + 8)" identifier = (cast_expression "(uint *******)(param_3 + 8)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) ;) (expression_statement "pppppppuVar17 = &local_30;" (assignment_expression "pppppppuVar17 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (do_statement "do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);" do (compound_statement "{\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      }" { (expression_statement "pppppppuVar37 = pppppppuVar17;" (assignment_expression "pppppppuVar37 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));" (assignment_expression "iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" identifier = (call_expression "FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" identifier (argument_list "(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar36 + 8) + iVar4 * 4)" ( (binary_expression "*(int *)(iVar36 + 8) + iVar4 * 4" (pointer_expression "*(int *)(iVar36 + 8)" * (cast_expression "(int *)(iVar36 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) )))) ;) (expression_statement "pppppppuVar20 = pppppppuVar17;" (assignment_expression "pppppppuVar20 = pppppppuVar17" identifier = identifier) ;) (if_statement "if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }" { (expression_statement "iVar29 = *(int *)(param_3 + 4);" (assignment_expression "iVar29 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar17 = pppppppuVar3;" (assignment_expression "pppppppuVar17 = pppppppuVar3" identifier = identifier) ;) (expression_statement "iVar31 = FUN_00045230(iVar29);" (assignment_expression "iVar31 = FUN_00045230(iVar29)" identifier = (call_expression "FUN_00045230(iVar29)" identifier (argument_list "(iVar29)" ( identifier )))) ;) (expression_statement "pppppppuVar20 = pppppppuVar3;" (assignment_expression "pppppppuVar20 = pppppppuVar3" identifier = identifier) ;) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (if_statement "if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }" if (parenthesized_expression "((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29))" ( (binary_expression "(-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)" (parenthesized_expression "(-1 < iVar31 + -1)" ( (binary_expression "-1 < iVar31 + -1" number_literal < (binary_expression "iVar31 + -1" identifier + number_literal)) )) && (parenthesized_expression "(iVar31 + -1 < iVar29)" ( (binary_expression "iVar31 + -1 < iVar29" (binary_expression "iVar31 + -1" identifier + number_literal) < identifier) ))) )) (compound_statement "{\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }" { (expression_statement "*(int *)(param_3 + 4) = iVar29 + -1;" (assignment_expression "*(int *)(param_3 + 4) = iVar29 + -1" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) = (binary_expression "iVar29 + -1" identifier + number_literal)) ;) (expression_statement "FUN_00045494(iVar28);" (call_expression "FUN_00045494(iVar28)" identifier (argument_list "(iVar28)" ( identifier ))) ;) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" identifier = (pointer_expression "*(int *)(iVar36 + 4)" * (cast_expression "(int *)(iVar36 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 4)" ( (binary_expression "iVar36 + 4" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar20 = pppppppuVar17;" (assignment_expression "pppppppuVar20 = pppppppuVar17" identifier = identifier) ;) })) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar17 = pppppppuVar37;" (assignment_expression "pppppppuVar17 = pppppppuVar37" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 < iVar25)" ( (binary_expression "iVar4 < iVar25" identifier < identifier) )) ;) })) })) (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "param_2 = unaff_s2;" (assignment_expression "param_2 = unaff_s2" identifier = identifier) ;) (expression_statement "param_3 = unaff_s3;" (assignment_expression "param_3 = unaff_s3" identifier = identifier) ;) (expression_statement "param_1 = unaff_s8;" (assignment_expression "param_1 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }" if (parenthesized_expression "(local_2c == *(uint ********)puVar39)" ( (binary_expression "local_2c == *(uint ********)puVar39" identifier == (pointer_expression "*(uint ********)puVar39" * (cast_expression "(uint ********)puVar39" ( (type_descriptor "uint ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "uVar41 = 0x48af0;" (assignment_expression "uVar41 = 0x48af0" identifier = number_literal) ;) (expression_statement "pppppppuVar17 = local_2c;" (assignment_expression "pppppppuVar17 = local_2c" identifier = identifier) ;) (expression_statement "puVar39 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar39 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar39 + 0x2d0f8);" (assignment_expression "piVar6 = *(int **)(puVar39 + 0x2d0f8)" identifier = (pointer_expression "*(int **)(puVar39 + 0x2d0f8)" * (cast_expression "(int **)(puVar39 + 0x2d0f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d0f8)" ( (binary_expression "puVar39 + 0x2d0f8" identifier + number_literal) ))))) ;) (expression_statement "local_84 = (int *)*piVar6;" (assignment_expression "local_84 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "pppppppuVar3 = pppppppuVar20;" (assignment_expression "pppppppuVar3 = pppppppuVar20" identifier = identifier) ;) (expression_statement "local_80 = unaff_s0;" (assignment_expression "local_80 = unaff_s0" identifier = identifier) ;) (expression_statement "local_7c = iVar36;" (assignment_expression "local_7c = iVar36" identifier = identifier) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_74 = param_3;" (assignment_expression "local_74 = param_3" identifier = identifier) ;) (expression_statement "local_70 = puVar38;" (assignment_expression "local_70 = puVar38" identifier = identifier) ;) (expression_statement "local_6c = unaff_s5;" (assignment_expression "local_6c = unaff_s5" identifier = identifier) ;) (expression_statement "local_68 = unaff_s6;" (assignment_expression "local_68 = unaff_s6" identifier = identifier) ;) (expression_statement "local_64 = unaff_s7;" (assignment_expression "local_64 = unaff_s7" identifier = identifier) ;) (expression_statement "local_60 = param_1;" (assignment_expression "local_60 = param_1" identifier = identifier) ;) (expression_statement "local_5c = uVar41;" (assignment_expression "local_5c = uVar41" identifier = identifier) ;) (expression_statement "iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);" (assignment_expression "iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00)" identifier = (call_expression "(**(code **)(puVar39 + 0x2d03c))(0x2c00)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d03c)" * (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "(0x2c00)" ( number_literal )))) ;) (if_statement "if (iVar25 == 0) goto LAB_00048f5c;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00048f5c;" goto statement_identifier ;)) (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" identifier = (subscript_expression "pppppppuVar20[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar20[0xb] = (uint ******)0x0;" (assignment_expression "pppppppuVar20[0xb] = (uint ******)0x0" (subscript_expression "pppppppuVar20[0xb]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar7 = (uint *)(iVar25 + 0xc00);" (assignment_expression "puVar7 = (uint *)(iVar25 + 0xc00)" identifier = (cast_expression "(uint *)(iVar25 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc00)" ( (binary_expression "iVar25 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "pppppppuVar20[0xc] = (uint ******)0x0;" (assignment_expression "pppppppuVar20[0xc] = (uint ******)0x0" (subscript_expression "pppppppuVar20[0xc]" identifier [ number_literal ]) = (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" if (parenthesized_expression "(0 < (int)ppppppuVar18)" ( (binary_expression "0 < (int)ppppppuVar18" number_literal < (cast_expression "(int)ppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" { (expression_statement "iVar36 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar36 = *(int *)(puVar39 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "local_124 = 0;" (assignment_expression "local_124 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar4 = *(int *)(puVar39 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar37 = (uint *******)0x0;" (assignment_expression "pppppppuVar37 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;" statement_identifier : (expression_statement "ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;" (assignment_expression "ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2" identifier = (binary_expression "*pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2" (pointer_expression "*pppppppuVar17" * identifier) + (binary_expression "(int)pppppppuVar20[3][local_124] * 2" (cast_expression "(int)pppppppuVar20[3][local_124]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar20[3][local_124]" (subscript_expression "pppppppuVar20[3]" identifier [ number_literal ]) [ identifier ])) * number_literal))) ;)) (expression_statement "bVar1 = *(byte *)(ppppppuVar35 + 1);" (assignment_expression "bVar1 = *(byte *)(ppppppuVar35 + 1)" identifier = (pointer_expression "*(byte *)(ppppppuVar35 + 1)" * (cast_expression "(byte *)(ppppppuVar35 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppuVar35 + 1)" ( (binary_expression "ppppppuVar35 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;" (assignment_expression "uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16" identifier = (binary_expression "(uint)((int)ppppppuVar35[1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppuVar35[1] << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppuVar35[1] << 8)" ( (binary_expression "(int)ppppppuVar35[1] << 8" (cast_expression "(int)ppppppuVar35[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar35[1]" identifier [ number_literal ])) << number_literal) ))) >> number_literal)) ;) (if_statement "if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }" { (expression_statement "pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));" (assignment_expression "pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" identifier = (cast_expression "(uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" ( (binary_expression "&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5)" (pointer_expression "&local_e4" & identifier) + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar35 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar35 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar35" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )))) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" ( (binary_expression "(uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f)" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (binary_expression "1 << (*(byte *)ppppppuVar35 & 0x1f)" number_literal << (parenthesized_expression "(*(byte *)ppppppuVar35 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar35 & 0x1f" (pointer_expression "*(byte *)ppppppuVar35" * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )))) )))) ;) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" * identifier) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_00048fc0:\n      pppppppuVar34 = local_e4;" statement_identifier : (expression_statement "pppppppuVar34 = local_e4;" (assignment_expression "pppppppuVar34 = local_e4" identifier = identifier) ;)) (if_statement "if (uVar5 == 0) goto LAB_000490bc;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000490bc;" goto statement_identifier ;)) (if_statement "if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" if (parenthesized_expression "((uVar5 & 0x20) == 0)" ( (binary_expression "(uVar5 & 0x20) == 0" (parenthesized_expression "(uVar5 & 0x20)" ( (binary_expression "uVar5 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }" { (if_statement "if ((uVar5 & 0x80) != 0) goto LAB_00049388;" if (parenthesized_expression "((uVar5 & 0x80) != 0)" ( (binary_expression "(uVar5 & 0x80) != 0" (parenthesized_expression "(uVar5 & 0x80)" ( (binary_expression "uVar5 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00049388;" goto statement_identifier ;)) (labeled_statement "LAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" statement_identifier : (if_statement "if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" if (parenthesized_expression "((uVar5 & 4) != 0)" ( (binary_expression "(uVar5 & 4) != 0" (parenthesized_expression "(uVar5 & 4)" ( (binary_expression "uVar5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" { (if_statement "if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" { (if_statement "if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;" if (parenthesized_expression "(((uint)ppppppuVar35[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar35[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar35[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar35[1] & 0x200" (cast_expression "(uint)ppppppuVar35[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar35[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00049388;" goto statement_identifier ;)) (expression_statement "ppppppuVar11 = pppppppuVar17[0x17];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x17]" identifier = (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" else (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0x17];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x17]" identifier = (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) ;) }))) (if_statement "if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" if (parenthesized_expression "((int)ppppppuVar11 < 2)" ( (binary_expression "(int)ppppppuVar11 < 2" (cast_expression "(int)ppppppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" { (expression_statement "pppppppuVar15 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar15 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);" do (compound_statement "{\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            }" { (expression_statement "pppppppuVar14 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar11 = *pppppppuVar15;" (assignment_expression "ppppppuVar11 = *pppppppuVar15" identifier = (pointer_expression "*pppppppuVar15" * identifier)) ;) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar34 & (uint)ppppppuVar11)" ( (binary_expression "(uint)*pppppppuVar34 & (uint)ppppppuVar11" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier) & (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" * identifier) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "uVar21 = uVar21 | (uint)pppppppuVar3;" (assignment_expression "uVar21 = uVar21 | (uint)pppppppuVar3" identifier = (binary_expression "uVar21 | (uint)pppppppuVar3" identifier | (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar34 = pppppppuVar14;" (assignment_expression "pppppppuVar34 = pppppppuVar14" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar14)" ( (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" else (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" identifier = (subscript_expression "pppppppuVar17[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar15 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar15 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);" do (compound_statement "{\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            }" { (expression_statement "pppppppuVar3 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar3 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" identifier = (pointer_expression "*ppppppuVar11" * identifier)) ;) (expression_statement "ppppppuVar26 = *pppppppuVar15;" (assignment_expression "ppppppuVar26 = *pppppppuVar15" identifier = (pointer_expression "*pppppppuVar15" * identifier)) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);" (assignment_expression "ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" identifier = (cast_expression "(uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" ( (binary_expression "(~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34" (parenthesized_expression "(~(uint)pppppuVar16 | (uint)ppppppuVar26)" ( (binary_expression "~(uint)pppppuVar16 | (uint)ppppppuVar26" (unary_expression "~(uint)pppppuVar16" ~ (cast_expression "(uint)pppppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) | (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar34 = ppppppuVar26;" (assignment_expression "*pppppppuVar34 = ppppppuVar26" (pointer_expression "*pppppppuVar34" * identifier) = identifier) ;) (expression_statement "uVar21 = uVar21 | (uint)ppppppuVar26;" (assignment_expression "uVar21 = uVar21 | (uint)ppppppuVar26" identifier = (binary_expression "uVar21 | (uint)ppppppuVar26" identifier | (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar34 = pppppppuVar3;" (assignment_expression "pppppppuVar34 = pppppppuVar3" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar3)" ( (binary_expression "&local_c4 != pppppppuVar3" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }))) (if_statement "if (uVar21 == 0) goto LAB_00048c28;" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) }))) (if_statement "if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }" if (parenthesized_expression "((uVar5 & 8) == 0)" ( (binary_expression "(uVar5 & 8) == 0" (parenthesized_expression "(uVar5 & 8)" ( (binary_expression "uVar5 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }" { (labeled_statement "LAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;" statement_identifier : (expression_statement "pppppppuVar34 = (uint *******)0x0;" (assignment_expression "pppppppuVar34 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (if_statement "if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }" if (parenthesized_expression "(0 < (int)pppppppuVar37)" ( (binary_expression "0 < (int)pppppppuVar37" number_literal < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }" { (expression_statement "pppppppuVar34 = (uint *******)0x0;" (assignment_expression "pppppppuVar34 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" identifier = identifier) ;) (do_statement "do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);" do (compound_statement "{\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            }" { (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20)" identifier = (cast_expression "(uint *******)((int)pppppppuVar34 * 0x20)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar34 * 0x20)" ( (binary_expression "(int)pppppppuVar34 * 0x20" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }" if (parenthesized_expression "((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0))" ( (binary_expression "(bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "(((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)" ( (binary_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0" (parenthesized_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1)" ( (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1" (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f)" (subscript_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8]" (parenthesized_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" ( (binary_expression "puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5)" identifier + (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar35 >> 5)" ( (binary_expression "(int)(uint)*(byte *)ppppppuVar35 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar35" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) ))) )) [ (binary_expression "(int)pppppppuVar34 * 8" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) >> (parenthesized_expression "(*(byte *)ppppppuVar35 & 0x1f)" ( (binary_expression "*(byte *)ppppppuVar35 & 0x1f" (pointer_expression "*(byte *)ppppppuVar35" * (cast_expression "(byte *)ppppppuVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (expression_statement "pppppppuVar15 = &local_c4;" (assignment_expression "pppppppuVar15 = &local_c4" identifier = (pointer_expression "&local_c4" & identifier)) ;) (expression_statement "puVar27 = puVar12;" (assignment_expression "puVar27 = puVar12" identifier = identifier) ;) (do_statement "do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);" do (compound_statement "{\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                }" { (expression_statement "pppppppuVar14 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar3 + 1" identifier = (binary_expression "pppppppuVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = *puVar27;" (assignment_expression "uVar21 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "ppppppuVar18 = *pppppppuVar3;" (assignment_expression "ppppppuVar18 = *pppppppuVar3" identifier = (pointer_expression "*pppppppuVar3" * identifier)) ;) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);" (assignment_expression "*pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21)" (pointer_expression "*pppppppuVar15" * identifier) = (cast_expression "(uint ******)((uint)ppppppuVar18 & uVar21)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)ppppppuVar18 & uVar21)" ( (binary_expression "(uint)ppppppuVar18 & uVar21" (cast_expression "(uint)ppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )))) ;) (expression_statement "uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;" (assignment_expression "uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21" identifier = (binary_expression "uVar5 | (uint)ppppppuVar18 & uVar21" identifier | (binary_expression "(uint)ppppppuVar18 & uVar21" (cast_expression "(uint)ppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier))) ;) (expression_statement "pppppppuVar3 = pppppppuVar14;" (assignment_expression "pppppppuVar3 = pppppppuVar14" identifier = identifier) ;) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar14)" ( (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (if_statement "if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "puVar27 = puVar12;" (assignment_expression "puVar27 = puVar12" identifier = identifier) ;) (expression_statement "ppiVar30 = &local_a4;" (assignment_expression "ppiVar30 = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (do_statement "do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);" do (compound_statement "{\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  }" { (expression_statement "uVar23 = *puVar27;" (assignment_expression "uVar23 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) (expression_statement "piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);" (assignment_expression "piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23)" identifier = (cast_expression "(int *)(~(uint)*pppppppuVar3 & uVar23)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)*pppppppuVar3 & uVar23)" ( (binary_expression "~(uint)*pppppppuVar3 & uVar23" (binary_expression "~(uint)*pppppppuVar3" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier) & identifier) )))) ;) (expression_statement "ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);" (assignment_expression "ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3)" identifier = (cast_expression "(uint ******)(~uVar23 & (uint)*pppppppuVar3)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~uVar23 & (uint)*pppppppuVar3)" ( (binary_expression "~uVar23 & (uint)*pppppppuVar3" (unary_expression "~uVar23" ~ identifier) & (binary_expression "(uint)*pppppppuVar3" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*ppiVar30 = piVar33;" (assignment_expression "*ppiVar30 = piVar33" (pointer_expression "*ppiVar30" * identifier) = identifier) ;) (expression_statement "*pppppppuVar3 = ppppppuVar18;" (assignment_expression "*pppppppuVar3 = ppppppuVar18" (pointer_expression "*pppppppuVar3" * identifier) = identifier) ;) (expression_statement "uVar5 = uVar5 | (uint)piVar33;" (assignment_expression "uVar5 = uVar5 | (uint)piVar33" identifier = (binary_expression "uVar5 | (uint)piVar33" identifier | (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar21 = uVar21 | (uint)ppppppuVar18;" (assignment_expression "uVar21 = uVar21 | (uint)ppppppuVar18" identifier = (binary_expression "uVar21 | (uint)ppppppuVar18" identifier | (cast_expression "(uint)ppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppppuVar3 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar3 = pppppppuVar3 + 1" identifier = (binary_expression "pppppppuVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" identifier = (binary_expression "ppiVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 + 8 != puVar27)" ( (binary_expression "puVar12 + 8 != puVar27" (binary_expression "puVar12 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);" (assignment_expression "pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc)" identifier = (cast_expression "(uint *******)(iVar25 + (int)pppppppuVar34 * 0xc)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar34 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar34 * 0xc" identifier + (binary_expression "(int)pppppppuVar34 * 0xc" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }" { (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" identifier = (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar27 = puVar7 + (int)pppppppuVar37 * 8;" (assignment_expression "puVar27 = puVar7 + (int)pppppppuVar37 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar37 * 8" identifier + (binary_expression "(int)pppppppuVar37 * 8" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar27 = (uint)local_a4;" (assignment_expression "*puVar27 = (uint)local_a4" (pointer_expression "*puVar27" * identifier) = (cast_expression "(uint)local_a4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar27[1] = local_a0;" (assignment_expression "puVar27[1] = local_a0" (subscript_expression "puVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[2] = local_9c;" (assignment_expression "puVar27[2] = local_9c" (subscript_expression "puVar27[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[3] = local_98;" (assignment_expression "puVar27[3] = local_98" (subscript_expression "puVar27[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[4] = local_94;" (assignment_expression "puVar27[4] = local_94" (subscript_expression "puVar27[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[5] = local_90;" (assignment_expression "puVar27[5] = local_90" (subscript_expression "puVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[6] = local_8c;" (assignment_expression "puVar27[6] = local_8c" (subscript_expression "puVar27[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[7] = local_88;" (assignment_expression "puVar27[7] = local_88" (subscript_expression "puVar27[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[1] = local_c0;" (assignment_expression "puVar12[1] = local_c0" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = local_bc;" (assignment_expression "puVar12[2] = local_bc" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar12 = (uint)local_c4;" (assignment_expression "*puVar12 = (uint)local_c4" (pointer_expression "*puVar12" * identifier) = (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar12[3] = local_b8;" (assignment_expression "puVar12[3] = local_b8" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = local_b4;" (assignment_expression "puVar12[4] = local_b4" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = local_b0;" (assignment_expression "puVar12[5] = local_b0" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = local_ac;" (assignment_expression "puVar12[6] = local_ac" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = local_a8;" (assignment_expression "puVar12[7] = local_a8" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppuVar3 = pppppppuVar15;" (assignment_expression "pppppppuVar3 = pppppppuVar15" identifier = identifier) ;) (expression_statement "iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);" (assignment_expression "iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc)" identifier = (call_expression "(*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc)" (parenthesized_expression "(*(code *)(iVar4 + 0x69e0))" ( (pointer_expression "*(code *)(iVar4 + 0x69e0)" * (cast_expression "(code *)(iVar4 + 0x69e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x69e0)" ( (binary_expression "iVar4 + 0x69e0" identifier + number_literal) )))) )) (argument_list "(iVar25 + (int)pppppppuVar37 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" identifier + (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (iVar28 != 0) goto LAB_000493b8;" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000493b8;" goto statement_identifier ;)) (expression_statement "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);" (assignment_expression "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar37 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar37 + 1)" ( (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];" (assignment_expression "pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124]" identifier = (cast_expression "(uint *******)pppppppuVar20[3][local_124]" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppuVar20[3][local_124]" (subscript_expression "pppppppuVar20[3]" identifier [ number_literal ]) [ identifier ]))) ;) (expression_statement "iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);" (assignment_expression "iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15)" identifier = (call_expression "(*(code *)(iVar36 + 0x33f8))(pppppppuVar15)" (parenthesized_expression "(*(code *)(iVar36 + 0x33f8))" ( (pointer_expression "*(code *)(iVar36 + 0x33f8)" * (cast_expression "(code *)(iVar36 + 0x33f8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x33f8)" ( (binary_expression "iVar36 + 0x33f8" identifier + number_literal) )))) )) (argument_list "(pppppppuVar15)" ( identifier )))) ;) (if_statement "if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }" { (expression_statement "local_118 = (int)pppppppuVar37 << 1;" (assignment_expression "local_118 = (int)pppppppuVar37 << 1" identifier = (binary_expression "(int)pppppppuVar37 << 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (goto_statement "goto LAB_000493b8;" goto statement_identifier ;) })) (if_statement "if (uVar21 == 0) break;" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);" (assignment_expression "pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar34 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar34 + 1)" ( (binary_expression "(int)pppppppuVar34 + 1" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pppppppuVar34 < (int)pppppppuVar37)" ( (binary_expression "(int)pppppppuVar34 < (int)pppppppuVar37" (cast_expression "(int)pppppppuVar34" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" identifier = (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }" if (parenthesized_expression "(pppppppuVar37 == pppppppuVar34)" ( (binary_expression "pppppppuVar37 == pppppppuVar34" identifier == identifier) )) (compound_statement "{\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }" { (expression_statement "ppppppuVar18 = pppppppuVar20[3];" (assignment_expression "ppppppuVar18 = pppppppuVar20[3]" identifier = (subscript_expression "pppppppuVar20[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d03c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d03c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = puVar7 + (int)pppppppuVar37 * 8;" (assignment_expression "puVar12 = puVar7 + (int)pppppppuVar37 * 8" identifier = (binary_expression "puVar7 + (int)pppppppuVar37 * 8" identifier + (binary_expression "(int)pppppppuVar37 * 8" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*puVar12 = (uint)local_e4;" (assignment_expression "*puVar12 = (uint)local_e4" (pointer_expression "*puVar12" * identifier) = (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);" (assignment_expression "pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124)" identifier = (cast_expression "(uint *******)(ppppppuVar18 + local_124)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppuVar18 + local_124)" ( (binary_expression "ppppppuVar18 + local_124" identifier + identifier) )))) ;) (expression_statement "puVar12[1] = local_e0;" (assignment_expression "puVar12[1] = local_e0" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);" (assignment_expression "puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + (int)pppppppuVar37 * 0xc)" ( (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" identifier + (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar12[2] = local_dc;" (assignment_expression "puVar12[2] = local_dc" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = local_d8;" (assignment_expression "puVar12[3] = local_d8" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = local_d4;" (assignment_expression "puVar12[4] = local_d4" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = local_d0;" (assignment_expression "puVar12[5] = local_d0" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = local_cc;" (assignment_expression "puVar12[6] = local_cc" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = local_c8;" (assignment_expression "puVar12[7] = local_c8" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar35 = *pppppppuVar3;" (assignment_expression "ppppppuVar35 = *pppppppuVar3" identifier = (pointer_expression "*pppppppuVar3" * identifier)) ;) (expression_statement "*puVar32 = 1;" (assignment_expression "*puVar32 = 1" (pointer_expression "*puVar32" * identifier) = number_literal) ;) (expression_statement "puVar32[1] = 1;" (assignment_expression "puVar32[1] = 1" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12 = (uint *)(*pcVar8)(4);" (assignment_expression "puVar12 = (uint *)(*pcVar8)(4)" identifier = (cast_expression "(uint *)(*pcVar8)(4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar8)(4)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "puVar32[2] = puVar12;" (assignment_expression "puVar32[2] = puVar12" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }" if (parenthesized_expression "(puVar12 != (uint *)0x0)" ( (binary_expression "puVar12 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }" { (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" identifier = (subscript_expression "pppppppuVar20[2]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);" (assignment_expression "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar37 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar37 + 1)" ( (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar12 = (uint)ppppppuVar35;" (assignment_expression "*puVar12 = (uint)ppppppuVar35" (pointer_expression "*puVar12" * identifier) = (cast_expression "(uint)ppppppuVar35" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;) })) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar32 = 0;" (assignment_expression "*puVar32 = 0" (pointer_expression "*puVar32" * identifier) = number_literal) ;) (if_statement "if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" if (parenthesized_expression "(pppppppuVar37 == (uint *******)0x0)" ( (binary_expression "pppppppuVar37 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" { (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }) (else_clause "else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" else (compound_statement "{\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" { (labeled_statement "LAB_000493b8:\n              iVar36 = iVar25;" statement_identifier : (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;)) (do_statement "do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);" do (compound_statement "{\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              }" { (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" identifier = (binary_expression "iVar36 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar36 + 8))" ( (pointer_expression "*(undefined4 *)(iVar36 + 8)" * (cast_expression "(undefined4 *)(iVar36 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" identifier = identifier) ;) }) while (parenthesized_expression "((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4)" ( (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4" (cast_expression "(int)(local_118 + (int)pppppppuVar37)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_118 + (int)pppppppuVar37)" ( (binary_expression "local_118 + (int)pppppppuVar37" identifier + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier) != identifier) )) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00048f5c;" goto statement_identifier ;) })) (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" identifier = (subscript_expression "pppppppuVar20[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;) })) (if_statement "if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" if (parenthesized_expression "((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0))" ( (binary_expression "(bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)" (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) || (parenthesized_expression "(((uint)ppppppuVar35[1] & 0x200) == 0)" ( (binary_expression "((uint)ppppppuVar35[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar35[1] & 0x200)" ( (binary_expression "(uint)ppppppuVar35[1] & 0x200" (cast_expression "(uint)ppppppuVar35[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppuVar35[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" { (expression_statement "pppppppuVar34 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar34 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (if_statement "if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" if (parenthesized_expression "((int)pppppppuVar17[0x17] < 2)" ( (binary_expression "(int)pppppppuVar17[0x17] < 2" (cast_expression "(int)pppppppuVar17[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }" { (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppuVar15 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar15 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);" do (compound_statement "{\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            }" { (expression_statement "pppppppuVar14 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar11 = *pppppppuVar34;" (assignment_expression "ppppppuVar11 = *pppppppuVar34" identifier = (pointer_expression "*pppppppuVar34" * identifier)) ;) (expression_statement "ppppppuVar26 = *pppppppuVar15;" (assignment_expression "ppppppuVar26 = *pppppppuVar15" identifier = (pointer_expression "*pppppppuVar15" * identifier)) ;) (expression_statement "pppppppuVar34 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);" (assignment_expression "*pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (pointer_expression "*pppppppuVar15" * identifier) = (cast_expression "(uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (binary_expression "~(uint)ppppppuVar11 & (uint)ppppppuVar26" (unary_expression "~(uint)ppppppuVar11" ~ (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);" (assignment_expression "pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" identifier = (cast_expression "(uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" ( (binary_expression "(uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "~(uint)ppppppuVar11 & (uint)ppppppuVar26" (unary_expression "~(uint)ppppppuVar11" ~ (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) & (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) (expression_statement "pppppppuVar15 = pppppppuVar14;" (assignment_expression "pppppppuVar15 = pppppppuVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppuVar14 != &local_c4)" ( (binary_expression "pppppppuVar14 != &local_c4" identifier != (pointer_expression "&local_c4" & identifier)) )) ;) }) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" else (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" identifier = (subscript_expression "pppppppuVar17[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppuVar15 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar15 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);" do (compound_statement "{\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            }" { (expression_statement "pppppppuVar14 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar15 + 1" identifier = (binary_expression "pppppppuVar15 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" identifier = (pointer_expression "*ppppppuVar11" * identifier)) ;) (expression_statement "ppppppuVar26 = *pppppppuVar34;" (assignment_expression "ppppppuVar26 = *pppppppuVar34" identifier = (pointer_expression "*pppppppuVar34" * identifier)) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar34 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);" (assignment_expression "ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" identifier = (cast_expression "(uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" ( (binary_expression "~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15" (unary_expression "~((uint)ppppppuVar26 & (uint)pppppuVar16)" ~ (parenthesized_expression "((uint)ppppppuVar26 & (uint)pppppuVar16)" ( (binary_expression "(uint)ppppppuVar26 & (uint)pppppuVar16" (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) & (binary_expression "(uint)*pppppppuVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "*pppppppuVar15 = ppppppuVar26;" (assignment_expression "*pppppppuVar15 = ppppppuVar26" (pointer_expression "*pppppppuVar15" * identifier) = identifier) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26)" identifier = (cast_expression "(uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)pppppppuVar3 | (uint)ppppppuVar26)" ( (binary_expression "(uint)pppppppuVar3 | (uint)ppppppuVar26" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)ppppppuVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar15 = pppppppuVar14;" (assignment_expression "pppppppuVar15 = pppppppuVar14" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar14)" ( (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }))) (if_statement "if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;" if (parenthesized_expression "(pppppppuVar3 == (uint *******)0x0)" ( (binary_expression "pppppppuVar3 == (uint *******)0x0" identifier == (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) (goto_statement "goto LAB_000490bc;" goto statement_identifier ;) })) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" else (compound_statement "{\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" { (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (if_statement "if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;" if (parenthesized_expression "(((uint)pppppppuVar34 & 0x400) == 0)" ( (binary_expression "((uint)pppppppuVar34 & 0x400) == 0" (parenthesized_expression "((uint)pppppppuVar34 & 0x400)" ( (binary_expression "(uint)pppppppuVar34 & 0x400" (cast_expression "(uint)pppppppuVar34" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00048c28;" goto statement_identifier ;)) (expression_statement "local_e4 = (uint *******)0x400;" (assignment_expression "local_e4 = (uint *******)0x400" identifier = (cast_expression "(uint *******)0x400" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;" if (parenthesized_expression "((uVar5 & 0x80) == 0)" ( (binary_expression "(uVar5 & 0x80) == 0" (parenthesized_expression "(uVar5 & 0x80)" ( (binary_expression "uVar5 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00048fdc;" goto statement_identifier ;)) (labeled_statement "LAB_00049388:\n        local_e4 = (uint *******)0x0;" statement_identifier : (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" else (compound_statement "{\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" { (if_statement "if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }" if (parenthesized_expression "(bVar1 == 3)" ( (binary_expression "bVar1 == 3" identifier == number_literal) )) (compound_statement "{\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }" { (expression_statement "pppppuVar16 = *ppppppuVar35;" (assignment_expression "pppppuVar16 = *ppppppuVar35" identifier = (pointer_expression "*ppppppuVar35" * identifier)) ;) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);" do (compound_statement "{\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        }" { (expression_statement "pppppppuVar15 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar34 + 1" identifier = (binary_expression "pppppppuVar34 + 1" identifier + number_literal)) ;) (expression_statement "ppppuVar24 = *pppppuVar16;" (assignment_expression "ppppuVar24 = *pppppuVar16" identifier = (pointer_expression "*pppppuVar16" * identifier)) ;) (expression_statement "pppppuVar16 = pppppuVar16 + 1;" (assignment_expression "pppppuVar16 = pppppuVar16 + 1" identifier = (binary_expression "pppppuVar16 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24)" identifier = (cast_expression "(uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)*pppppppuVar34 | (uint)ppppuVar24)" ( (binary_expression "(uint)*pppppppuVar34 | (uint)ppppuVar24" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)ppppuVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" * identifier) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppuVar34 = pppppppuVar15;" (assignment_expression "pppppppuVar34 = pppppppuVar15" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar15)" ( (binary_expression "&local_c4 != pppppppuVar15" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) (goto_statement "goto LAB_00048fc0;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" if (parenthesized_expression "(bVar1 == 5)" ( (binary_expression "bVar1 == 5" identifier == number_literal) )) (compound_statement "{\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" { (if_statement "if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" if (parenthesized_expression "((int)pppppppuVar17[0x17] < 2)" ( (binary_expression "(int)pppppppuVar17[0x17] < 2" (cast_expression "(int)pppppppuVar17[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }" { (expression_statement "local_e4 = (uint *******)0xffffffff;" (assignment_expression "local_e4 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0xffffffff;" (assignment_expression "local_e0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_dc = 0xffffffff;" (assignment_expression "local_dc = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d8 = 0xffffffff;" (assignment_expression "local_d8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d4 = 0xffffffff;" (assignment_expression "local_d4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d0 = 0xffffffff;" (assignment_expression "local_d0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_cc = 0xffffffff;" (assignment_expression "local_cc = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_c8 = 0xffffffff;" (assignment_expression "local_c8 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" else (compound_statement "{\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" identifier = (subscript_expression "pppppppuVar17[0xf]" identifier [ number_literal ])) ;) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" identifier = (cast_expression "(uint *******)&local_e4" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_e4" & identifier))) ;) (do_statement "do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);" do (compound_statement "{\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          }" { (expression_statement "pppppppuVar34 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar3 + 1" identifier = (binary_expression "pppppppuVar3 + 1" identifier + number_literal)) ;) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" identifier = (pointer_expression "*ppppppuVar11" * identifier)) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) (expression_statement "*pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);" (assignment_expression "*pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16)" (pointer_expression "*pppppppuVar3" * identifier) = (cast_expression "(uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)*pppppppuVar3 | (uint)pppppuVar16)" ( (binary_expression "(uint)*pppppppuVar3 | (uint)pppppuVar16" (binary_expression "(uint)*pppppppuVar3" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (cast_expression "(uint)pppppuVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppuVar3 = pppppppuVar34;" (assignment_expression "pppppppuVar3 = pppppppuVar34" identifier = identifier) ;) }) while (parenthesized_expression "(&local_c4 != pppppppuVar34)" ( (binary_expression "&local_c4 != pppppppuVar34" (pointer_expression "&local_c4" & identifier) != identifier) )) ;) }))) (expression_statement "ppppppuVar11 = pppppppuVar17[0x20];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x20]" identifier = (subscript_expression "pppppppuVar17[0x20]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" statement_identifier : (if_statement "if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" if (parenthesized_expression "(((uint)ppppppuVar11 & 0x40) == 0)" ( (binary_expression "((uint)ppppppuVar11 & 0x40) == 0" (parenthesized_expression "((uint)ppppppuVar11 & 0x40)" ( (binary_expression "(uint)ppppppuVar11 & 0x40" (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" { (expression_statement "local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);" (assignment_expression "local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff)" identifier = (cast_expression "(uint *******)((uint)local_e4 & 0xfffffbff)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)local_e4 & 0xfffffbff)" ( (binary_expression "(uint)local_e4 & 0xfffffbff" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) }))) (expression_statement "pppppppuVar3 = local_e4;" (assignment_expression "pppppppuVar3 = local_e4" identifier = identifier) ;) (if_statement "if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }" if (parenthesized_expression "(((uint)ppppppuVar11 & 0x80) != 0)" ( (binary_expression "((uint)ppppppuVar11 & 0x80) != 0" (parenthesized_expression "((uint)ppppppuVar11 & 0x80)" ( (binary_expression "(uint)ppppppuVar11 & 0x80" (cast_expression "(uint)ppppppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)&SUB_fffffffe;" (assignment_expression "pppppppuVar3 = (uint *******)&SUB_fffffffe" identifier = (cast_expression "(uint *******)&SUB_fffffffe" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&SUB_fffffffe" & identifier))) ;) (expression_statement "local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);" (assignment_expression "local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe)" identifier = (cast_expression "(uint *******)((uint)local_e4 & 0xfffffffe)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)local_e4 & 0xfffffffe)" ( (binary_expression "(uint)local_e4 & 0xfffffffe" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) })) (goto_statement "goto LAB_00048fc0;" goto statement_identifier ;) })) (expression_statement "pppppppuVar3 = (uint *******)0xffffffff;" (assignment_expression "pppppppuVar3 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" if (parenthesized_expression "(bVar1 == 7)" ( (binary_expression "bVar1 == 7" identifier == number_literal) )) (compound_statement "{\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" { (expression_statement "ppppppuVar11 = pppppppuVar17[0x20];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x20]" identifier = (subscript_expression "pppppppuVar17[0x20]" identifier [ number_literal ])) ;) (expression_statement "local_e4 = (uint *******)0xffffffff;" (assignment_expression "local_e4 = (uint *******)0xffffffff" identifier = (cast_expression "(uint *******)0xffffffff" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_e0 = 0xffffffff;" (assignment_expression "local_e0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_dc = 0xffffffff;" (assignment_expression "local_dc = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_d8 = 0xffffffff;" (assignment_expression "local_d8 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x00049318;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00048c28:\n    local_124 = local_124 + 1;" statement_identifier : (expression_statement "local_124 = local_124 + 1;" (assignment_expression "local_124 = local_124 + 1" identifier = (binary_expression "local_124 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;" if (parenthesized_expression "((int)ppppppuVar18 <= local_124)" ( (binary_expression "(int)ppppppuVar18 <= local_124" (cast_expression "(int)ppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x00048c3c;" goto statement_identifier ;)) (goto_statement "goto LAB_00048bd4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (labeled_statement "LAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;" statement_identifier : (expression_statement "pppppppuVar3 = (uint *******)0x100;" (assignment_expression "pppppppuVar3 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" identifier = (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar39 + 0x2ced8)" * (pointer_expression "*(code **)(puVar39 + 0x2ced8)" * (cast_expression "(code **)(puVar39 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2ced8)" ( (binary_expression "puVar39 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar20[0xb] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xb] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);" (assignment_expression "uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0)" identifier = (call_expression "(uint)(ppppppuVar18 != (uint ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppppppuVar18 != (uint ******)0x0)" ( (binary_expression "ppppppuVar18 != (uint ******)0x0" identifier != (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )))) ;) (labeled_statement "LAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }" if (parenthesized_expression "(local_84 == (int *)*piVar6)" ( (binary_expression "local_84 == (int *)*piVar6" identifier == (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "piVar6 = local_84;" (assignment_expression "piVar6 = local_84" identifier = identifier) ;) (expression_statement "(**(code **)(puVar39 + 0x2d0b8))();" (call_expression "(**(code **)(puVar39 + 0x2d0b8))()" (parenthesized_expression "(**(code **)(puVar39 + 0x2d0b8))" ( (pointer_expression "**(code **)(puVar39 + 0x2d0b8)" * (pointer_expression "*(code **)(puVar39 + 0x2d0b8)" * (cast_expression "(code **)(puVar39 + 0x2d0b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d0b8)" ( (binary_expression "puVar39 + 0x2d0b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(pppppppuVar3 + 6) == '\x10')" ( (binary_expression "*(char *)(pppppppuVar3 + 6) == '\x10'" (pointer_expression "*(char *)(pppppppuVar3 + 6)" * (cast_expression "(char *)(pppppppuVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar3 + 6)" ( (binary_expression "pppppppuVar3 + 6" identifier + number_literal) )))) == (char_literal "'\x10'" ' escape_sequence ')) )) (compound_statement "{\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }" { (expression_statement "ppppppuVar18 = (uint ******)pppppppuVar3[1][7];" (assignment_expression "ppppppuVar18 = (uint ******)pppppppuVar3[1][7]" identifier = (cast_expression "(uint ******)pppppppuVar3[1][7]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar3[1][7]" (subscript_expression "pppppppuVar3[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];" (assignment_expression "pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3]" (subscript_expression "pppppppuVar3[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar3[1][3]" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppuVar3[1][3]" (subscript_expression "pppppppuVar3[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppuVar3[7] = ppppppuVar18;" (assignment_expression "pppppppuVar3[7] = ppppppuVar18" (subscript_expression "pppppppuVar3[7]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pppppppuVar3[3] = (uint ******)pppppppuVar3;" (assignment_expression "pppppppuVar3[3] = (uint ******)pppppppuVar3" (subscript_expression "pppppppuVar3[3]" identifier [ number_literal ]) = (cast_expression "(uint ******)pppppppuVar3" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppuVar18 = (uint ******)FUN_000445c0();" (assignment_expression "ppppppuVar18 = (uint ******)FUN_000445c0()" identifier = (cast_expression "(uint ******)FUN_000445c0()" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_000445c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pppppppuVar3[7] = ppppppuVar18;" (assignment_expression "pppppppuVar3[7] = ppppppuVar18" (subscript_expression "pppppppuVar3[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" if (parenthesized_expression "(ppppppuVar18 == (uint ******)0xffffffff)" ( (binary_expression "ppppppuVar18 == (uint ******)0xffffffff" identifier == (cast_expression "(uint ******)0xffffffff" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    uVar5 = 0xc;\n  }" { (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" else (compound_statement "{\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" { (if_statement "if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(pppppppuVar3 + 6) == '\f')" ( (binary_expression "*(char *)(pppppppuVar3 + 6) == '\f'" (pointer_expression "*(char *)(pppppppuVar3 + 6)" * (cast_expression "(char *)(pppppppuVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppuVar3 + 6)" ( (binary_expression "pppppppuVar3 + 6" identifier + number_literal) )))) == (char_literal "'\f'" ' escape_sequence ')) )) (compound_statement "{\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }" { (expression_statement "iVar25 = *piVar6 + (int)ppppppuVar18 * 8;" (assignment_expression "iVar25 = *piVar6 + (int)ppppppuVar18 * 8" identifier = (binary_expression "*piVar6 + (int)ppppppuVar18 * 8" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)ppppppuVar18 * 8" (cast_expression "(int)ppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;" (assignment_expression "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (parenthesized_expression "((uint)pppppppuVar3[5] & 0x3ff)" ( (binary_expression "(uint)pppppppuVar3[5] & 0x3ff" (cast_expression "(uint)pppppppuVar3[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppuVar3[5]" identifier [ number_literal ])) & number_literal) )) << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) (return_statement "return uVar5;" return identifier ;) (labeled_statement "code_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" statement_identifier : (if_statement "if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" if (parenthesized_expression "(0 < (int)pppppppuVar37)" ( (binary_expression "0 < (int)pppppppuVar37" number_literal < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" { (expression_statement "local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);" (assignment_expression "local_f0 = (undefined1 *)((int)pppppppuVar37 + 1)" identifier = (cast_expression "(undefined1 *)((int)pppppppuVar37 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppuVar37 + 1)" ( (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "iVar4 = (int)local_f0 * 4;" (assignment_expression "iVar4 = (int)local_f0 * 4" identifier = (binary_expression "(int)local_f0 * 4" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);" (assignment_expression "iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4)" identifier = (call_expression "(**(code **)(puVar39 + 0x2d03c))(iVar4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d03c)" * (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "local_e8 = iVar36;" (assignment_expression "local_e8 = iVar36" identifier = identifier) ;) (if_statement "if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" if (parenthesized_expression "((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37))" ( (binary_expression "(iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)" (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_f4 = 0, 0x155551aa < (int)pppppppuVar37)" ( (comma_expression "local_f4 = 0, 0x155551aa < (int)pppppppuVar37" (assignment_expression "local_f4 = 0" identifier = number_literal) , (binary_expression "0x155551aa < (int)pppppppuVar37" number_literal < (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      local_118 = (int)pppppppuVar37 << 1;\n    }" { (expression_statement "local_118 = (int)pppppppuVar37 << 1;" (assignment_expression "local_118 = (int)pppppppuVar37 << 1" identifier = (binary_expression "(int)pppppppuVar37 << 1" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }) (else_clause "else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" else (compound_statement "{\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" { (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" identifier = (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);" (assignment_expression "puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d03c)" * (pointer_expression "*(code **)(puVar39 + 0x2d03c)" * (cast_expression "(code **)(puVar39 + 0x2d03c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d03c)" ( (binary_expression "puVar39 + 0x2d03c" identifier + number_literal) ))))) )) (argument_list "((int)pppppppuVar37 * 0xc)" ( (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }" if (parenthesized_expression "(puVar32 != (undefined4 *)0x0)" ( (binary_expression "puVar32 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }" { (expression_statement "iVar4 = iVar4 + -4;" (assignment_expression "iVar4 = iVar4 + -4" identifier = (binary_expression "iVar4 + -4" identifier + number_literal)) ;) (expression_statement "ppiVar30 = &local_a4;" (assignment_expression "ppiVar30 = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = puVar32 + (int)pppppppuVar37;" (assignment_expression "puVar13 = puVar32 + (int)pppppppuVar37" identifier = (binary_expression "puVar32 + (int)pppppppuVar37" identifier + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_a4 = (int *)0x0;" (assignment_expression "local_a4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar33 = (int *)(iVar25 + 4);" (assignment_expression "piVar33 = (int *)(iVar25 + 4)" identifier = (cast_expression "(int *)(iVar25 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "iVar36 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar36 = *(int *)(puVar39 + 0x2ce30)" identifier = (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) ))))) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);" (assignment_expression "pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" identifier = (cast_expression "(code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" ( (binary_expression "*(int *)(puVar39 + 0x2ce30) + 0x6cac" (pointer_expression "*(int *)(puVar39 + 0x2ce30)" * (cast_expression "(int *)(puVar39 + 0x2ce30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x2ce30)" ( (binary_expression "puVar39 + 0x2ce30" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);" do (compound_statement "{\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        }" { (expression_statement "iVar31 = *piVar33;" (assignment_expression "iVar31 = *piVar33" identifier = (pointer_expression "*piVar33" * identifier)) ;) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }" { (do_statement "do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);" do (compound_statement "{\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            }" { (if_statement "if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }" if (parenthesized_expression "(pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff)" ( (binary_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff" (subscript_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" (subscript_expression "pppppppuVar17[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar33[1] + iVar29 * 4)" * (cast_expression "(int *)(piVar33[1] + iVar29 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar33[1] + iVar29 * 4)" ( (binary_expression "piVar33[1] + iVar29 * 4" (subscript_expression "piVar33[1]" identifier [ number_literal ]) + (binary_expression "iVar29 * 4" identifier * number_literal)) )))) ]) != (cast_expression "(uint *****)0xffffffff" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }" { (expression_statement "pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);" (assignment_expression "pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" identifier = (cast_expression "(uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" ( (binary_expression "pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3" (subscript_expression "pppppppuVar17[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3" (cast_expression "(int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" (subscript_expression "pppppppuVar17[3]" identifier [ number_literal ]) [ (pointer_expression "*(int *)(piVar33[1] + iVar29 * 4)" * (cast_expression "(int *)(piVar33[1] + iVar29 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar33[1] + iVar29 * 4)" ( (binary_expression "piVar33[1] + iVar29 * 4" (subscript_expression "piVar33[1]" identifier [ number_literal ]) + (binary_expression "iVar29 * 4" identifier * number_literal)) )))) ])) * number_literal)) )))) ;) (expression_statement "local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);" (assignment_expression "local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0)" identifier = (call_expression "(*(code *)(iVar36 + 0x59ac))(&local_f0)" (parenthesized_expression "(*(code *)(iVar36 + 0x59ac))" ( (pointer_expression "*(code *)(iVar36 + 0x59ac)" * (cast_expression "(code *)(iVar36 + 0x59ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0x59ac)" ( (binary_expression "iVar36 + 0x59ac" identifier + number_literal) )))) )) (argument_list "(&local_f0)" ( (pointer_expression "&local_f0" & identifier) )))) ;) (if_statement "if (local_f4 != 0) goto LAB_000495c0;" if (parenthesized_expression "(local_f4 != 0)" ( (binary_expression "local_f4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) (expression_statement "iVar31 = *piVar33;" (assignment_expression "iVar31 = *piVar33" identifier = (pointer_expression "*piVar33" * identifier)) ;) })) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar29 < iVar31)" ( (binary_expression "iVar29 < iVar31" identifier < identifier) )) ;) })) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0)" identifier = (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_f4,pppppppuVar17,&local_f0,0)" ( (pointer_expression "&local_f4" & identifier) , identifier , (pointer_expression "&local_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar32 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar32 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar32 + iVar28)" * (cast_expression "(int *)((int)puVar32 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + iVar28)" ( (binary_expression "(int)puVar32 + iVar28" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;" if (parenthesized_expression "((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))" ( (binary_expression "(iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" ( (comma_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) , (binary_expression "local_f4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000495c4;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" if (parenthesized_expression "((*(byte *)(iVar31 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar31 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar31 + 0x34) & 1)" ( (binary_expression "*(byte *)(iVar31 + 0x34) & 1" (pointer_expression "*(byte *)(iVar31 + 0x34)" * (cast_expression "(byte *)(iVar31 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x34)" ( (binary_expression "iVar31 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }" { (expression_statement "*(int *)((int)puVar13 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28)" * (cast_expression "(int *)((int)puVar13 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28)" ( (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28 + iVar4)" * (cast_expression "(int *)((int)puVar13 + iVar28 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28 + iVar4)" ( (binary_expression "(int)puVar13 + iVar28 + iVar4" (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) }) (else_clause "else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" else (compound_statement "{\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" { (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1)" identifier = (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_f4,pppppppuVar17,&local_f0,1)" ( (pointer_expression "&local_f4" & identifier) , identifier , (pointer_expression "&local_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar13 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28)" * (cast_expression "(int *)((int)puVar13 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28)" ( (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;" if (parenthesized_expression "((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))" ( (binary_expression "(iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" ( (comma_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) , (binary_expression "local_f4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000495c4;" goto statement_identifier ;)) (if_statement "if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }" if (parenthesized_expression "((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17]))" ( (binary_expression "(iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])" (parenthesized_expression "(iVar31 != *(int *)((int)puVar32 + iVar28))" ( (binary_expression "iVar31 != *(int *)((int)puVar32 + iVar28)" identifier != (pointer_expression "*(int *)((int)puVar32 + iVar28)" * (cast_expression "(int *)((int)puVar32 + iVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 + iVar28)" ( (binary_expression "(int)puVar32 + iVar28" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) && (parenthesized_expression "(1 < (int)pppppppuVar17[0x17])" ( (binary_expression "1 < (int)pppppppuVar17[0x17]" number_literal < (cast_expression "(int)pppppppuVar17[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar17[0x17]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n              bVar2 = true;\n            }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" identifier = identifier) ;) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2)" identifier = (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_f4,pppppppuVar17,&local_f0,2)" ( (pointer_expression "&local_f4" & identifier) , identifier , (pointer_expression "&local_f0" & identifier) , number_literal )))) ;) (expression_statement "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28 + iVar4)" * (cast_expression "(int *)((int)puVar13 + iVar28 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar28 + iVar4)" ( (binary_expression "(int)puVar13 + iVar28 + iVar4" (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (if_statement "if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;" if (parenthesized_expression "((iVar31 == 0) && (local_f4 != 0))" ( (binary_expression "(iVar31 == 0) && (local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_f4 != 0)" ( (binary_expression "local_f4 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) }))) (expression_statement "iVar31 = iVar28 * 8 + iVar25;" (assignment_expression "iVar31 = iVar28 * 8 + iVar25" identifier = (binary_expression "iVar28 * 8 + iVar25" (binary_expression "iVar28 * 8" identifier * number_literal) + identifier)) ;) (expression_statement "ppiVar9 = ppiVar30;" (assignment_expression "ppiVar9 = ppiVar30" identifier = identifier) ;) (do_statement "do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);" do (compound_statement "{\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          }" { (expression_statement "ppiVar10 = ppiVar9 + 1;" (assignment_expression "ppiVar10 = ppiVar9 + 1" identifier = (binary_expression "ppiVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = (uint *)(iVar31 + 0xc00);" (assignment_expression "puVar12 = (uint *)(iVar31 + 0xc00)" identifier = (cast_expression "(uint *)(iVar31 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0xc00)" ( (binary_expression "iVar31 + 0xc00" identifier + number_literal) )))) ;) (expression_statement "iVar31 = iVar31 + 4;" (assignment_expression "iVar31 = iVar31 + 4" identifier = (binary_expression "iVar31 + 4" identifier + number_literal)) ;) (expression_statement "*ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);" (assignment_expression "*ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12)" (pointer_expression "*ppiVar9" * identifier) = (cast_expression "(int *)((uint)*ppiVar9 | *puVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*ppiVar9 | *puVar12)" ( (binary_expression "(uint)*ppiVar9 | *puVar12" (binary_expression "(uint)*ppiVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier) | (pointer_expression "*puVar12" * identifier)) )))) ;) (expression_statement "ppiVar9 = ppiVar10;" (assignment_expression "ppiVar9 = ppiVar10" identifier = identifier) ;) }) while (parenthesized_expression "(&local_84 != ppiVar10)" ( (binary_expression "&local_84 != ppiVar10" (pointer_expression "&local_84" & identifier) != identifier) )) ;) (expression_statement "iVar28 = iVar28 + 4;" (assignment_expression "iVar28 = iVar28 + 4" identifier = (binary_expression "iVar28 + 4" identifier + number_literal)) ;) (expression_statement "piVar33 = piVar33 + 3;" (assignment_expression "piVar33 = piVar33 + 3" identifier = (binary_expression "piVar33 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != iVar28)" ( (binary_expression "iVar4 != iVar28" identifier != identifier) )) ;) (if_statement "if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)0x200;" (assignment_expression "pppppppuVar3 = (uint *******)0x200" identifier = (cast_expression "(uint *******)0x200" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" identifier = (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar39 + 0x2ced8)" * (pointer_expression "*(code **)(puVar39 + 0x2ced8)" * (cast_expression "(code **)(puVar39 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2ced8)" ( (binary_expression "puVar39 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar20[0xc] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xc] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;" if (parenthesized_expression "(ppppppuVar18 == (uint ******)0x0)" ( (binary_expression "ppppppuVar18 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000495c0;" goto statement_identifier ;)) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (expression_statement "ppppppuVar35 = ppppppuVar18;" (assignment_expression "ppppppuVar35 = ppppppuVar18" identifier = identifier) ;) (do_statement "do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);" do (compound_statement "{\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          }" { (expression_statement "piVar33 = *ppiVar30;" (assignment_expression "piVar33 = *ppiVar30" identifier = (pointer_expression "*ppiVar30" * identifier)) ;) (if_statement "if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }" if (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }" { (expression_statement "pppppppuVar3 = (uint *******)0x1;" (assignment_expression "pppppppuVar3 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppuVar11 = ppppppuVar35;" (assignment_expression "ppppppuVar11 = ppppppuVar35" identifier = identifier) ;) (do_statement "do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);" do (compound_statement "{\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              }" { (if_statement "if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }" if (parenthesized_expression "(((uint)piVar33 & 1) != 0)" ( (binary_expression "((uint)piVar33 & 1) != 0" (parenthesized_expression "((uint)piVar33 & 1)" ( (binary_expression "(uint)piVar33 & 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar19 = puVar13;" (assignment_expression "puVar19 = puVar13" identifier = identifier) ;) (expression_statement "puVar22 = puVar32;" (assignment_expression "puVar22 = puVar32" identifier = identifier) ;) (expression_statement "iVar4 = iVar36;" (assignment_expression "iVar4 = iVar36" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }" if (parenthesized_expression "(((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00))" ( (binary_expression "(uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar36 + 0xc00)" * (cast_expression "(uint *)(iVar36 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0xc00)" ( (binary_expression "iVar36 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }" { (do_statement "do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);" do (compound_statement "{\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    }" { (expression_statement "puVar12 = (uint *)(iVar4 + 0xc20);" (assignment_expression "puVar12 = (uint *)(iVar4 + 0xc20)" identifier = (cast_expression "(uint *)(iVar4 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc20)" ( (binary_expression "iVar4 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" identifier = (binary_expression "iVar4 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar3 & *puVar12) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *puVar12) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *puVar12)" ( (binary_expression "(uint)pppppppuVar3 & *puVar12" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar12" * identifier)) )) == number_literal) )) ;) (expression_statement "puVar19 = puVar13 + iVar28;" (assignment_expression "puVar19 = puVar13 + iVar28" identifier = (binary_expression "puVar13 + iVar28" identifier + identifier)) ;) (expression_statement "puVar22 = puVar32 + iVar28;" (assignment_expression "puVar22 = puVar32 + iVar28" identifier = (binary_expression "puVar32 + iVar28" identifier + identifier)) ;) })) (expression_statement "*ppppppuVar11 = (uint *****)*puVar22;" (assignment_expression "*ppppppuVar11 = (uint *****)*puVar22" (pointer_expression "*ppppppuVar11" * identifier) = (cast_expression "(uint *****)*puVar22" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar22" * identifier))) ;) (expression_statement "ppppppuVar11[0x100] = (uint *****)*puVar19;" (assignment_expression "ppppppuVar11[0x100] = (uint *****)*puVar19" (subscript_expression "ppppppuVar11[0x100]" identifier [ number_literal ]) = (cast_expression "(uint *****)*puVar19" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*puVar19" * identifier))) ;) })) (expression_statement "piVar33 = (int *)((uint)piVar33 >> 1);" (assignment_expression "piVar33 = (int *)((uint)piVar33 >> 1)" identifier = (cast_expression "(int *)((uint)piVar33 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar33 >> 1)" ( (binary_expression "(uint)piVar33 >> 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar3 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar3 << 1)" ( (binary_expression "(int)pppppppuVar3 << 1" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" identifier = (binary_expression "ppppppuVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "ppppppuVar35 = ppppppuVar35 + 0x20;" (assignment_expression "ppppppuVar35 = ppppppuVar35 + 0x20" identifier = (binary_expression "ppppppuVar35 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" identifier = (binary_expression "ppiVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppuVar18 + 0x100 != ppppppuVar35)" ( (binary_expression "ppppppuVar18 + 0x100 != ppppppuVar35" (binary_expression "ppppppuVar18 + 0x100" identifier + number_literal) != identifier) )) ;) }) (else_clause "else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" else (compound_statement "{\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)0x100;" (assignment_expression "pppppppuVar3 = (uint *******)0x100" identifier = (cast_expression "(uint *******)0x100" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" identifier = (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" ( (pointer_expression "**(code **)(puVar39 + 0x2ced8)" * (pointer_expression "*(code **)(puVar39 + 0x2ced8)" * (cast_expression "(code **)(puVar39 + 0x2ced8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2ced8)" ( (binary_expression "puVar39 + 0x2ced8" identifier + number_literal) ))))) )) (argument_list "(4)" ( number_literal ))))) ;) (expression_statement "pppppppuVar20[0xb] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xb] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }" if (parenthesized_expression "(ppppppuVar18 == (uint ******)0x0)" ( (binary_expression "ppppppuVar18 == (uint ******)0x0" identifier == (cast_expression "(uint ******)0x0" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }" { (labeled_statement "LAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000495c4:\n            (*pcVar40)(puVar32);" statement_identifier : (expression_statement "(*pcVar40)(puVar32);" (call_expression "(*pcVar40)(puVar32)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(puVar32)" ( identifier ))) ;)) (expression_statement "iVar36 = local_e8;" (assignment_expression "iVar36 = local_e8" identifier = identifier) ;) (goto_statement "goto LAB_000495d4;" goto statement_identifier ;) })) (expression_statement "pppppppuVar17 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar17 = pppppppuVar17 + 0x18" identifier = (binary_expression "pppppppuVar17 + 0x18" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (do_statement "do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);" do (compound_statement "{\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          }" { (expression_statement "pppppppuVar3 = (uint *******)0x1;" (assignment_expression "pppppppuVar3 = (uint *******)0x1" identifier = (cast_expression "(uint *******)0x1" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar28 = iVar4;" (assignment_expression "iVar28 = iVar4" identifier = identifier) ;) (for_statement "for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }" for ( (assignment_expression "piVar33 = *ppiVar30" identifier = (pointer_expression "*ppiVar30" * identifier)) ; (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar33 = (int *)((uint)piVar33 >> 1)" identifier = (cast_expression "(int *)((uint)piVar33 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar33 >> 1)" ( (binary_expression "(uint)piVar33 >> 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ) (compound_statement "{\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }" { (if_statement "if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }" if (parenthesized_expression "(((uint)piVar33 & 1) != 0)" ( (binary_expression "((uint)piVar33 & 1) != 0" (parenthesized_expression "((uint)piVar33 & 1)" ( (binary_expression "(uint)piVar33 & 1" (cast_expression "(uint)piVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "iVar31 = iVar36;" (assignment_expression "iVar31 = iVar36" identifier = identifier) ;) (if_statement "if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }" if (parenthesized_expression "(((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00))" ( (binary_expression "(uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*(uint *)(iVar36 + 0xc00)" * (cast_expression "(uint *)(iVar36 + 0xc00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 0xc00)" ( (binary_expression "iVar36 + 0xc00" identifier + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }" { (do_statement "do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);" do (compound_statement "{\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  }" { (expression_statement "puVar12 = (uint *)(iVar31 + 0xc20);" (assignment_expression "puVar12 = (uint *)(iVar31 + 0xc20)" identifier = (cast_expression "(uint *)(iVar31 + 0xc20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0xc20)" ( (binary_expression "iVar31 + 0xc20" identifier + number_literal) )))) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "iVar31 = iVar31 + 0x20;" (assignment_expression "iVar31 = iVar31 + 0x20" identifier = (binary_expression "iVar31 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppuVar3 & *puVar12) == 0)" ( (binary_expression "((uint)pppppppuVar3 & *puVar12) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *puVar12)" ( (binary_expression "(uint)pppppppuVar3 & *puVar12" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (pointer_expression "*puVar12" * identifier)) )) == number_literal) )) ;) (expression_statement "iVar29 = iVar29 * 4;" (assignment_expression "iVar29 = iVar29 * 4" identifier = (binary_expression "iVar29 * 4" identifier * number_literal)) ;) })) (if_statement "if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" if (parenthesized_expression "(((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0)" ( (binary_expression "((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0" (parenthesized_expression "((uint)pppppppuVar3 & (uint)*pppppppuVar17)" ( (binary_expression "(uint)pppppppuVar3 & (uint)*pppppppuVar17" (cast_expression "(uint)pppppppuVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "(uint)*pppppppuVar17" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )) == number_literal) )) (compound_statement "{\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }" { (expression_statement "ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);" (assignment_expression "ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29)" (subscript_expression "ppppppuVar18[iVar28]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar32 + iVar29)" * (cast_expression "(uint ******)((int)puVar32 + iVar29)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar32 + iVar29)" ( (binary_expression "(int)puVar32 + iVar29" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) (else_clause "else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" else (compound_statement "{\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" { (expression_statement "ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);" (assignment_expression "ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29)" (subscript_expression "ppppppuVar18[iVar28]" identifier [ identifier ]) = (pointer_expression "*(uint ******)((int)puVar13 + iVar29)" * (cast_expression "(uint ******)((int)puVar13 + iVar29)" ( (type_descriptor "uint ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)puVar13 + iVar29)" ( (binary_expression "(int)puVar13 + iVar29" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }))) })) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar3 << 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar3 << 1)" ( (binary_expression "(int)pppppppuVar3 << 1" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" identifier = (binary_expression "iVar4 + 0x20" identifier + number_literal)) ;) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" identifier = (binary_expression "ppiVar30 + 1" identifier + number_literal)) ;) (expression_statement "pppppppuVar17 = pppppppuVar17 + 1;" (assignment_expression "pppppppuVar17 = pppppppuVar17 + 1" identifier = (binary_expression "pppppppuVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0x100)" ( (binary_expression "iVar4 != 0x100" identifier != number_literal) )) ;) }))) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) ;) (if_statement "if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }" if (parenthesized_expression "((int)local_a4 << 0x15 < 0)" ( (binary_expression "(int)local_a4 << 0x15 < 0" (binary_expression "(int)local_a4 << 0x15" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) < number_literal) )) (compound_statement "{\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }" { (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" identifier = (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);" do (compound_statement "{\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          }" { (if_statement "if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }" if (parenthesized_expression "((*puVar7 & 0x400) != 0)" ( (binary_expression "(*puVar7 & 0x400) != 0" (parenthesized_expression "(*puVar7 & 0x400)" ( (binary_expression "*puVar7 & 0x400" (pointer_expression "*puVar7" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }" { (expression_statement "pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];" (assignment_expression "pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" identifier = (cast_expression "(uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" ( (type_descriptor "uint *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" identifier [ (cast_expression "(int)((int)pppppppuVar3 + (int)pppppppuVar37)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppuVar3 + (int)pppppppuVar37)" ( (binary_expression "(int)pppppppuVar3 + (int)pppppppuVar37" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]))) ;) (expression_statement "ppppppuVar18[10] = pppppuVar16;" (assignment_expression "ppppppuVar18[10] = pppppuVar16" (subscript_expression "ppppppuVar18[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }" { (expression_statement "ppppppuVar18[0x10a] = pppppuVar16;" (assignment_expression "ppppppuVar18[0x10a] = pppppuVar16" (subscript_expression "ppppppuVar18[0x10a]" identifier [ number_literal ]) = identifier) ;) })) (break_statement "break;" break ;) })) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1)" identifier = (cast_expression "(uint *******)((int)pppppppuVar3 + 1)" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppuVar3 + 1)" ( (binary_expression "(int)pppppppuVar3 + 1" (cast_expression "(int)pppppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar7 = puVar7 + 8;" (assignment_expression "puVar7 = puVar7 + 8" identifier = (binary_expression "puVar7 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppuVar3 != pppppppuVar37)" ( (binary_expression "pppppppuVar3 != pppppppuVar37" identifier != identifier) )) ;) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d10c)" identifier = (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar8)(puVar32);" (call_expression "(*pcVar8)(puVar32)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(puVar32)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(local_e8);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(local_e8)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(local_e8)" ( identifier ))) ;) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (do_statement "do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);" do (compound_statement "{\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        }" { (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" identifier = (binary_expression "iVar36 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar36 + 8))" ( (pointer_expression "*(undefined4 *)(iVar36 + 8)" * (cast_expression "(undefined4 *)(iVar36 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" identifier = identifier) ;) }) while (parenthesized_expression "(iVar25 + (int)pppppppuVar37 * 0xc != iVar4)" ( (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc != iVar4" (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" identifier + (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);" statement_identifier : (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar36);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar36)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar36)" ( identifier ))) ;)) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" identifier = identifier) ;) (do_statement "do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);" do (compound_statement "{\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    }" { (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" identifier = (binary_expression "iVar36 + 0xc" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar36 + 8))" ( (pointer_expression "*(undefined4 *)(iVar36 + 8)" * (cast_expression "(undefined4 *)(iVar36 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + 8)" ( (binary_expression "iVar36 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25)" ( (binary_expression "iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" identifier != (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4" (cast_expression "(int)(local_118 + (int)pppppppuVar37)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_118 + (int)pppppppuVar37)" ( (binary_expression "local_118 + (int)pppppppuVar37" identifier + (cast_expression "(int)pppppppuVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + identifier)) )) ;) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (labeled_statement "LAB_00048f5c:\n    uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) }))) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" ( (pointer_expression "**(code **)(puVar39 + 0x2d10c)" * (pointer_expression "*(code **)(puVar39 + 0x2d10c)" * (cast_expression "(code **)(puVar39 + 0x2d10c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x2d10c)" ( (binary_expression "puVar39 + 0x2d10c" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier ))) ;) (if_statement "if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" if (parenthesized_expression "(pppppppuVar37 != (uint *******)0x0)" ( (binary_expression "pppppppuVar37 != (uint *******)0x0" identifier != (cast_expression "(uint *******)0x0" ( (type_descriptor "uint *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00048f60;" goto statement_identifier ;) })) (goto_statement "goto LAB_00049784;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * 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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) }))))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ 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 = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) ))) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) >> (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (unary_expression ~ (parenthesized_expression ( IDENT ))) * IDENT) & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (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 = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 * IDENT) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (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 ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) * LIT) + IDENT) != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = 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 ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) << LIT))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ])) * 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 ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) | (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) == LIT) )) (compound_statement { (do_statement do (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_expression * IDENT)) )) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * 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) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * IDENT)) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) == LIT) )) (compound_statement { (do_statement do (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (pointer_expression * IDENT)) )) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) != 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 = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) * LIT) + 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 ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" (type_identifier "uint") (function_declarator "FUN_00048800(int *param_1,uint *******param_2,int param_3,uint *******param_4)" (identifier "FUN_00048800") (parameter_list "(int *param_1,uint *******param_2,int param_3,uint *******param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *******param_2" (type_identifier "uint") (pointer_declarator "*******param_2" (* "*") (pointer_declarator "******param_2" (* "*") (pointer_declarator "*****param_2" (* "*") (pointer_declarator "****param_2" (* "*") (pointer_declarator "***param_2" (* "*") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))))))))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint *******param_4" (type_identifier "uint") (pointer_declarator "*******param_4" (* "*") (pointer_declarator "******param_4" (* "*") (pointer_declarator "*****param_4" (* "*") (pointer_declarator "****param_4" (* "*") (pointer_declarator "***param_4" (* "*") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))))))))) () ")"))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  uint *******pppppppuVar3;\n  int iVar4;\n  uint uVar5;\n  int *piVar6;\n  uint *puVar7;\n  code *pcVar8;\n  int **ppiVar9;\n  int **ppiVar10;\n  uint ******ppppppuVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  uint *******pppppppuVar14;\n  uint *******pppppppuVar15;\n  uint *****pppppuVar16;\n  uint *******pppppppuVar17;\n  uint ******ppppppuVar18;\n  undefined4 *puVar19;\n  uint *******pppppppuVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  uint uVar23;\n  uint ****ppppuVar24;\n  int iVar25;\n  uint ******ppppppuVar26;\n  uint *puVar27;\n  int iVar28;\n  int iVar29;\n  int **ppiVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int unaff_s0;\n  int *piVar33;\n  uint *******pppppppuVar34;\n  uint ******ppppppuVar35;\n  int iVar36;\n  uint *******unaff_s2;\n  uint *******pppppppuVar37;\n  int unaff_s3;\n  undefined *puVar38;\n  uint *******unaff_s5;\n  undefined *unaff_s6;\n  undefined4 *unaff_s7;\n  undefined *puVar39;\n  code *pcVar40;\n  int *unaff_s8;\n  undefined4 uVar41;\n  int local_124;\n  int local_118;\n  int local_f4;\n  undefined1 *local_f0;\n  undefined4 local_ec;\n  int local_e8;\n  uint *******local_e4;\n  uint local_e0;\n  uint local_dc;\n  uint local_d8;\n  uint local_d4;\n  uint local_d0;\n  uint local_cc;\n  uint local_c8;\n  uint ******local_c4;\n  uint local_c0;\n  uint local_bc;\n  uint local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint local_ac;\n  uint local_a8;\n  int *local_a4;\n  uint local_a0;\n  uint local_9c;\n  uint local_98;\n  uint local_94;\n  uint local_90;\n  uint local_8c;\n  uint local_88;\n  int *local_84;\n  int local_80;\n  int local_7c;\n  uint *******local_78;\n  int local_74;\n  undefined *local_70;\n  uint *******local_6c;\n  undefined *local_68;\n  undefined4 *local_64;\n  int *local_60;\n  undefined4 local_5c;\n  undefined4 local_38;\n  undefined4 local_34;\n  uint ******local_30;\n  uint *******local_2c;\n  \n  puVar39 = PTR___stack_chk_guard_00075be8;\n  local_38 = 0;\n  local_34 = 0;\n  local_30 = (uint ******)0x0;\n  iVar36 = param_1[7] + (int)param_2 * 0xc;\n  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;\n  iVar25 = *(int *)(iVar36 + 4);\n  pppppppuVar20 = param_2;\n  puVar38 = PTR_LAB_00075920;\n  if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }\n  (*(code *)PTR_free_00075bfc)(local_30);\n  uVar5 = 0;\n  param_2 = unaff_s2;\n  param_3 = unaff_s3;\n  param_1 = unaff_s8;\nLAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }\n  uVar41 = 0x48af0;\n  pppppppuVar17 = local_2c;\n  puVar39 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar6 = *(int **)(puVar39 + 0x2d0f8);\n  local_84 = (int *)*piVar6;\n  pppppppuVar3 = pppppppuVar20;\n  local_80 = unaff_s0;\n  local_7c = iVar36;\n  local_78 = param_2;\n  local_74 = param_3;\n  local_70 = puVar38;\n  local_6c = unaff_s5;\n  local_68 = unaff_s6;\n  local_64 = unaff_s7;\n  local_60 = param_1;\n  local_5c = uVar41;\n  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);\n  if (iVar25 == 0) goto LAB_00048f5c;\n  ppppppuVar18 = pppppppuVar20[2];\n  pppppppuVar20[0xb] = (uint ******)0x0;\n  puVar7 = (uint *)(iVar25 + 0xc00);\n  pppppppuVar20[0xc] = (uint ******)0x0;\n  local_e4 = (uint *******)0x0;\n  local_e0 = 0;\n  local_dc = 0;\n  local_d8 = 0;\n  local_d4 = 0;\n  local_d0 = 0;\n  local_cc = 0;\n  local_c8 = 0;\n  if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;\n  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n  pppppppuVar20[0xb] = ppppppuVar18;\n  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);\nLAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }\n  piVar6 = local_84;\n  (**(code **)(puVar39 + 0x2d0b8))();\n  if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }\n  pppppppuVar3[3] = (uint ******)pppppppuVar3;\n  ppppppuVar18 = (uint ******)FUN_000445c0();\n  pppppppuVar3[7] = ppppppuVar18;\n  if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }\n  return uVar5;\ncode_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  (**(code **)(puVar39 + 0x2d10c))(iVar25);\n  if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }\n  goto LAB_00049784;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "uint *******pppppppuVar3;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar3" (* "*") (pointer_declarator "******pppppppuVar3" (* "*") (pointer_declarator "*****pppppppuVar3" (* "*") (pointer_declarator "****pppppppuVar3" (* "*") (pointer_declarator "***pppppppuVar3" (* "*") (pointer_declarator "**pppppppuVar3" (* "*") (pointer_declarator "*pppppppuVar3" (* "*") (identifier "pppppppuVar3")))))))) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int **ppiVar9;" (primitive_type "int") (pointer_declarator "**ppiVar9" (* "*") (pointer_declarator "*ppiVar9" (* "*") (identifier "ppiVar9"))) (; ";")) (declaration "int **ppiVar10;" (primitive_type "int") (pointer_declarator "**ppiVar10" (* "*") (pointer_declarator "*ppiVar10" (* "*") (identifier "ppiVar10"))) (; ";")) (declaration "uint ******ppppppuVar11;" (type_identifier "uint") (pointer_declarator "******ppppppuVar11" (* "*") (pointer_declarator "*****ppppppuVar11" (* "*") (pointer_declarator "****ppppppuVar11" (* "*") (pointer_declarator "***ppppppuVar11" (* "*") (pointer_declarator "**ppppppuVar11" (* "*") (pointer_declarator "*ppppppuVar11" (* "*") (identifier "ppppppuVar11"))))))) (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint *******pppppppuVar14;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar14" (* "*") (pointer_declarator "******pppppppuVar14" (* "*") (pointer_declarator "*****pppppppuVar14" (* "*") (pointer_declarator "****pppppppuVar14" (* "*") (pointer_declarator "***pppppppuVar14" (* "*") (pointer_declarator "**pppppppuVar14" (* "*") (pointer_declarator "*pppppppuVar14" (* "*") (identifier "pppppppuVar14")))))))) (; ";")) (declaration "uint *******pppppppuVar15;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar15" (* "*") (pointer_declarator "******pppppppuVar15" (* "*") (pointer_declarator "*****pppppppuVar15" (* "*") (pointer_declarator "****pppppppuVar15" (* "*") (pointer_declarator "***pppppppuVar15" (* "*") (pointer_declarator "**pppppppuVar15" (* "*") (pointer_declarator "*pppppppuVar15" (* "*") (identifier "pppppppuVar15")))))))) (; ";")) (declaration "uint *****pppppuVar16;" (type_identifier "uint") (pointer_declarator "*****pppppuVar16" (* "*") (pointer_declarator "****pppppuVar16" (* "*") (pointer_declarator "***pppppuVar16" (* "*") (pointer_declarator "**pppppuVar16" (* "*") (pointer_declarator "*pppppuVar16" (* "*") (identifier "pppppuVar16")))))) (; ";")) (declaration "uint *******pppppppuVar17;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar17" (* "*") (pointer_declarator "******pppppppuVar17" (* "*") (pointer_declarator "*****pppppppuVar17" (* "*") (pointer_declarator "****pppppppuVar17" (* "*") (pointer_declarator "***pppppppuVar17" (* "*") (pointer_declarator "**pppppppuVar17" (* "*") (pointer_declarator "*pppppppuVar17" (* "*") (identifier "pppppppuVar17")))))))) (; ";")) (declaration "uint ******ppppppuVar18;" (type_identifier "uint") (pointer_declarator "******ppppppuVar18" (* "*") (pointer_declarator "*****ppppppuVar18" (* "*") (pointer_declarator "****ppppppuVar18" (* "*") (pointer_declarator "***ppppppuVar18" (* "*") (pointer_declarator "**ppppppuVar18" (* "*") (pointer_declarator "*ppppppuVar18" (* "*") (identifier "ppppppuVar18"))))))) (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint *******pppppppuVar20;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar20" (* "*") (pointer_declarator "******pppppppuVar20" (* "*") (pointer_declarator "*****pppppppuVar20" (* "*") (pointer_declarator "****pppppppuVar20" (* "*") (pointer_declarator "***pppppppuVar20" (* "*") (pointer_declarator "**pppppppuVar20" (* "*") (pointer_declarator "*pppppppuVar20" (* "*") (identifier "pppppppuVar20")))))))) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "uint ****ppppuVar24;" (type_identifier "uint") (pointer_declarator "****ppppuVar24" (* "*") (pointer_declarator "***ppppuVar24" (* "*") (pointer_declarator "**ppppuVar24" (* "*") (pointer_declarator "*ppppuVar24" (* "*") (identifier "ppppuVar24"))))) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "uint ******ppppppuVar26;" (type_identifier "uint") (pointer_declarator "******ppppppuVar26" (* "*") (pointer_declarator "*****ppppppuVar26" (* "*") (pointer_declarator "****ppppppuVar26" (* "*") (pointer_declarator "***ppppppuVar26" (* "*") (pointer_declarator "**ppppppuVar26" (* "*") (pointer_declarator "*ppppppuVar26" (* "*") (identifier "ppppppuVar26"))))))) (; ";")) (declaration "uint *puVar27;" (type_identifier "uint") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "int **ppiVar30;" (primitive_type "int") (pointer_declarator "**ppiVar30" (* "*") (pointer_declarator "*ppiVar30" (* "*") (identifier "ppiVar30"))) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "undefined4 *puVar32;" (type_identifier "undefined4") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "int unaff_s0;" (primitive_type "int") (identifier "unaff_s0") (; ";")) (declaration "int *piVar33;" (primitive_type "int") (pointer_declarator "*piVar33" (* "*") (identifier "piVar33")) (; ";")) (declaration "uint *******pppppppuVar34;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar34" (* "*") (pointer_declarator "******pppppppuVar34" (* "*") (pointer_declarator "*****pppppppuVar34" (* "*") (pointer_declarator "****pppppppuVar34" (* "*") (pointer_declarator "***pppppppuVar34" (* "*") (pointer_declarator "**pppppppuVar34" (* "*") (pointer_declarator "*pppppppuVar34" (* "*") (identifier "pppppppuVar34")))))))) (; ";")) (declaration "uint ******ppppppuVar35;" (type_identifier "uint") (pointer_declarator "******ppppppuVar35" (* "*") (pointer_declarator "*****ppppppuVar35" (* "*") (pointer_declarator "****ppppppuVar35" (* "*") (pointer_declarator "***ppppppuVar35" (* "*") (pointer_declarator "**ppppppuVar35" (* "*") (pointer_declarator "*ppppppuVar35" (* "*") (identifier "ppppppuVar35"))))))) (; ";")) (declaration "int iVar36;" (primitive_type "int") (identifier "iVar36") (; ";")) (declaration "uint *******unaff_s2;" (type_identifier "uint") (pointer_declarator "*******unaff_s2" (* "*") (pointer_declarator "******unaff_s2" (* "*") (pointer_declarator "*****unaff_s2" (* "*") (pointer_declarator "****unaff_s2" (* "*") (pointer_declarator "***unaff_s2" (* "*") (pointer_declarator "**unaff_s2" (* "*") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")))))))) (; ";")) (declaration "uint *******pppppppuVar37;" (type_identifier "uint") (pointer_declarator "*******pppppppuVar37" (* "*") (pointer_declarator "******pppppppuVar37" (* "*") (pointer_declarator "*****pppppppuVar37" (* "*") (pointer_declarator "****pppppppuVar37" (* "*") (pointer_declarator "***pppppppuVar37" (* "*") (pointer_declarator "**pppppppuVar37" (* "*") (pointer_declarator "*pppppppuVar37" (* "*") (identifier "pppppppuVar37")))))))) (; ";")) (declaration "int unaff_s3;" (primitive_type "int") (identifier "unaff_s3") (; ";")) (declaration "undefined *puVar38;" (type_identifier "undefined") (pointer_declarator "*puVar38" (* "*") (identifier "puVar38")) (; ";")) (declaration "uint *******unaff_s5;" (type_identifier "uint") (pointer_declarator "*******unaff_s5" (* "*") (pointer_declarator "******unaff_s5" (* "*") (pointer_declarator "*****unaff_s5" (* "*") (pointer_declarator "****unaff_s5" (* "*") (pointer_declarator "***unaff_s5" (* "*") (pointer_declarator "**unaff_s5" (* "*") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")))))))) (; ";")) (declaration "undefined *unaff_s6;" (type_identifier "undefined") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined4 *unaff_s7;" (type_identifier "undefined4") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "undefined *puVar39;" (type_identifier "undefined") (pointer_declarator "*puVar39" (* "*") (identifier "puVar39")) (; ";")) (declaration "code *pcVar40;" (type_identifier "code") (pointer_declarator "*pcVar40" (* "*") (identifier "pcVar40")) (; ";")) (declaration "int *unaff_s8;" (primitive_type "int") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "undefined4 uVar41;" (type_identifier "undefined4") (identifier "uVar41") (; ";")) (declaration "int local_124;" (primitive_type "int") (identifier "local_124") (; ";")) (declaration "int local_118;" (primitive_type "int") (identifier "local_118") (; ";")) (declaration "int local_f4;" (primitive_type "int") (identifier "local_f4") (; ";")) (declaration "undefined1 *local_f0;" (type_identifier "undefined1") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "undefined4 local_ec;" (type_identifier "undefined4") (identifier "local_ec") (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "uint *******local_e4;" (type_identifier "uint") (pointer_declarator "*******local_e4" (* "*") (pointer_declarator "******local_e4" (* "*") (pointer_declarator "*****local_e4" (* "*") (pointer_declarator "****local_e4" (* "*") (pointer_declarator "***local_e4" (* "*") (pointer_declarator "**local_e4" (* "*") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4")))))))) (; ";")) (declaration "uint local_e0;" (type_identifier "uint") (identifier "local_e0") (; ";")) (declaration "uint local_dc;" (type_identifier "uint") (identifier "local_dc") (; ";")) (declaration "uint local_d8;" (type_identifier "uint") (identifier "local_d8") (; ";")) (declaration "uint local_d4;" (type_identifier "uint") (identifier "local_d4") (; ";")) (declaration "uint local_d0;" (type_identifier "uint") (identifier "local_d0") (; ";")) (declaration "uint local_cc;" (type_identifier "uint") (identifier "local_cc") (; ";")) (declaration "uint local_c8;" (type_identifier "uint") (identifier "local_c8") (; ";")) (declaration "uint ******local_c4;" (type_identifier "uint") (pointer_declarator "******local_c4" (* "*") (pointer_declarator "*****local_c4" (* "*") (pointer_declarator "****local_c4" (* "*") (pointer_declarator "***local_c4" (* "*") (pointer_declarator "**local_c4" (* "*") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4"))))))) (; ";")) (declaration "uint local_c0;" (type_identifier "uint") (identifier "local_c0") (; ";")) (declaration "uint local_bc;" (type_identifier "uint") (identifier "local_bc") (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "uint local_b4;" (type_identifier "uint") (identifier "local_b4") (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "uint local_ac;" (type_identifier "uint") (identifier "local_ac") (; ";")) (declaration "uint local_a8;" (type_identifier "uint") (identifier "local_a8") (; ";")) (declaration "int *local_a4;" (primitive_type "int") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "uint local_a0;" (type_identifier "uint") (identifier "local_a0") (; ";")) (declaration "uint local_9c;" (type_identifier "uint") (identifier "local_9c") (; ";")) (declaration "uint local_98;" (type_identifier "uint") (identifier "local_98") (; ";")) (declaration "uint local_94;" (type_identifier "uint") (identifier "local_94") (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "uint local_8c;" (type_identifier "uint") (identifier "local_8c") (; ";")) (declaration "uint local_88;" (type_identifier "uint") (identifier "local_88") (; ";")) (declaration "int *local_84;" (primitive_type "int") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "int local_80;" (primitive_type "int") (identifier "local_80") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "uint *******local_78;" (type_identifier "uint") (pointer_declarator "*******local_78" (* "*") (pointer_declarator "******local_78" (* "*") (pointer_declarator "*****local_78" (* "*") (pointer_declarator "****local_78" (* "*") (pointer_declarator "***local_78" (* "*") (pointer_declarator "**local_78" (* "*") (pointer_declarator "*local_78" (* "*") (identifier "local_78")))))))) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "undefined *local_70;" (type_identifier "undefined") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "uint *******local_6c;" (type_identifier "uint") (pointer_declarator "*******local_6c" (* "*") (pointer_declarator "******local_6c" (* "*") (pointer_declarator "*****local_6c" (* "*") (pointer_declarator "****local_6c" (* "*") (pointer_declarator "***local_6c" (* "*") (pointer_declarator "**local_6c" (* "*") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")))))))) (; ";")) (declaration "undefined *local_68;" (type_identifier "undefined") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined4 *local_64;" (type_identifier "undefined4") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "int *local_60;" (primitive_type "int") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "uint ******local_30;" (type_identifier "uint") (pointer_declarator "******local_30" (* "*") (pointer_declarator "*****local_30" (* "*") (pointer_declarator "****local_30" (* "*") (pointer_declarator "***local_30" (* "*") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30"))))))) (; ";")) (declaration "uint *******local_2c;" (type_identifier "uint") (pointer_declarator "*******local_2c" (* "*") (pointer_declarator "******local_2c" (* "*") (pointer_declarator "*****local_2c" (* "*") (pointer_declarator "****local_2c" (* "*") (pointer_declarator "***local_2c" (* "*") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")))))))) (; ";")) (expression_statement "puVar39 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar39 = PTR___stack_chk_guard_00075be8" (identifier "puVar39") (= "=") (identifier "PTR___stack_chk_guard_00075be8")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = (uint ******)0x0;" (assignment_expression "local_30 = (uint ******)0x0" (identifier "local_30") (= "=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar36 = param_1[7] + (int)param_2 * 0xc;" (assignment_expression "iVar36 = param_1[7] + (int)param_2 * 0xc" (identifier "iVar36") (= "=") (binary_expression "param_1[7] + (int)param_2 * 0xc" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (+ "+") (binary_expression "(int)param_2 * 0xc" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (* "*") (number_literal "0xc")))) (; ";")) (expression_statement "local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(uint ********)PTR___stack_chk_guard_00075be8" (identifier "local_2c") (= "=") (pointer_expression "*(uint ********)PTR___stack_chk_guard_00075be8" (* "*") (cast_expression "(uint ********)PTR___stack_chk_guard_00075be8" (( "(") (type_descriptor "uint ********" (type_identifier "uint") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (identifier "PTR___stack_chk_guard_00075be8")))) (; ";")) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar36 + 4)" (* "*") (cast_expression "(int *)(iVar36 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 4)" (( "(") (binary_expression "iVar36 + 4" (identifier "iVar36") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pppppppuVar20 = param_2;" (assignment_expression "pppppppuVar20 = param_2" (identifier "pppppppuVar20") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar38 = PTR_LAB_00075920;" (assignment_expression "puVar38 = PTR_LAB_00075920" (identifier "puVar38") (= "=") (identifier "PTR_LAB_00075920")) (; ";")) (if_statement "if (0 < iVar25) {\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }" (if "if") (parenthesized_expression "(0 < iVar25)" (( "(") (binary_expression "0 < iVar25" (number_literal "0") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n    unaff_s7 = &local_38;\n    unaff_s0 = 0;\n    unaff_s5 = (uint *******)(iVar36 + 8);\n    puVar38 = PTR_LAB_00075920 + 0x5230;\n    unaff_s6 = PTR_LAB_00075920 + 0x6140;\n    do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);\n    unaff_s2 = param_2;\n    unaff_s3 = param_3;\n    unaff_s8 = param_1;\n    if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }\n  }" ({ "{") (expression_statement "unaff_s7 = &local_38;" (assignment_expression "unaff_s7 = &local_38" (identifier "unaff_s7") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" (identifier "unaff_s0") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s5 = (uint *******)(iVar36 + 8);" (assignment_expression "unaff_s5 = (uint *******)(iVar36 + 8)" (identifier "unaff_s5") (= "=") (cast_expression "(uint *******)(iVar36 + 8)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar36 + 8)" (( "(") (binary_expression "iVar36 + 8" (identifier "iVar36") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar38 = PTR_LAB_00075920 + 0x5230;" (assignment_expression "puVar38 = PTR_LAB_00075920 + 0x5230" (identifier "puVar38") (= "=") (binary_expression "PTR_LAB_00075920 + 0x5230" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x5230"))) (; ";")) (expression_statement "unaff_s6 = PTR_LAB_00075920 + 0x6140;" (assignment_expression "unaff_s6 = PTR_LAB_00075920 + 0x6140" (identifier "unaff_s6") (= "=") (binary_expression "PTR_LAB_00075920 + 0x6140" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x6140"))) (; ";")) (do_statement "do {\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    } while (unaff_s0 < iVar25);" (do "do") (compound_statement "{\n      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);\n      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }\n      unaff_s0 = unaff_s0 + 1;\n    }" ({ "{") (expression_statement "pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);" (assignment_expression "pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" (identifier "pppppppuVar3") (= "=") (pointer_expression "*(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" (* "*") (cast_expression "(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4)" (( "(") (type_descriptor "uint ********" (type_identifier "uint") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(*(int *)(iVar36 + 8) + unaff_s0 * 4)" (( "(") (binary_expression "*(int *)(iVar36 + 8) + unaff_s0 * 4" (pointer_expression "*(int *)(iVar36 + 8)" (* "*") (cast_expression "(int *)(iVar36 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 8)" (( "(") (binary_expression "iVar36 + 8" (identifier "iVar36") (+ "+") (number_literal "8")) () ")")))) (+ "+") (binary_expression "unaff_s0 * 4" (identifier "unaff_s0") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))\n      {\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))" (( "(") (binary_expression "(param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0)" (parenthesized_expression "(param_2 != pppppppuVar3)" (( "(") (binary_expression "param_2 != pppppppuVar3" (identifier "param_2") (!= "!=") (identifier "pppppppuVar3")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0" (parenthesized_expression "(*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8)" (( "(") (binary_expression "*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8" (pointer_expression "*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4)" (* "*") (cast_expression "(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + (int)pppppppuVar3 * 8 + 4)" (( "(") (binary_expression "*param_1 + (int)pppppppuVar3 * 8 + 4" (binary_expression "*param_1 + (int)pppppppuVar3 * 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "(int)pppppppuVar3 * 8" (cast_expression "(int)pppppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar3")) (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar28 = (int)pppppppuVar3 * 0xc;\n        iVar31 = param_1[5] + iVar28;\n        puVar32 = *(undefined4 **)(iVar31 + 8);\n        pppppppuVar20 = unaff_s5;\n        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);\n        if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar28 = (int)pppppppuVar3 * 0xc;" (assignment_expression "iVar28 = (int)pppppppuVar3 * 0xc" (identifier "iVar28") (= "=") (binary_expression "(int)pppppppuVar3 * 0xc" (cast_expression "(int)pppppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar3")) (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "iVar31 = param_1[5] + iVar28;" (assignment_expression "iVar31 = param_1[5] + iVar28" (identifier "iVar31") (= "=") (binary_expression "param_1[5] + iVar28" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (identifier "iVar28"))) (; ";")) (expression_statement "puVar32 = *(undefined4 **)(iVar31 + 8);" (assignment_expression "puVar32 = *(undefined4 **)(iVar31 + 8)" (identifier "puVar32") (= "=") (pointer_expression "*(undefined4 **)(iVar31 + 8)" (* "*") (cast_expression "(undefined4 **)(iVar31 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar31 + 8)" (( "(") (binary_expression "iVar31 + 8" (identifier "iVar31") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pppppppuVar20 = unaff_s5;" (assignment_expression "pppppppuVar20 = unaff_s5" (identifier "pppppppuVar20") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);" (assignment_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32)" (identifier "iVar4") (= "=") (call_expression "FUN_00045230(iVar25,unaff_s5,*puVar32)" (identifier "FUN_00045230") (argument_list "(iVar25,unaff_s5,*puVar32)" (( "(") (identifier "iVar25") (, ",") (identifier "unaff_s5") (, ",") (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) () ")")))) (; ";")) (if_statement "if (*(int *)(iVar31 + 4) < 2) {\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }\n        else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar31 + 4) < 2)" (( "(") (binary_expression "*(int *)(iVar31 + 4) < 2" (pointer_expression "*(int *)(iVar31 + 4)" (* "*") (cast_expression "(int *)(iVar31 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 4)" (( "(") (binary_expression "iVar31 + 4" (identifier "iVar31") (+ "+") (number_literal "4")) () ")")))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }\n        }" ({ "{") (if_statement "if (iVar4 == 0) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) goto LAB_000488c0;\n          }" ({ "{") (expression_statement "pppppppuVar20 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar20 = (uint *******)(param_3 + 8)" (identifier "pppppppuVar20") (= "=") (cast_expression "(uint *******)(param_3 + 8)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4))" (identifier "iVar4") (= "=") (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4))" (identifier "FUN_00045230") (argument_list "(*(undefined4 *)(param_3 + 4))" (( "(") (pointer_expression "*(undefined4 *)(param_3 + 4)" (* "*") (cast_expression "(undefined4 *)(param_3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_000488c0;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000488c0;" (goto "goto") (statement_identifier "LAB_000488c0") (; ";"))) (} "}"))) (} "}")) (else_clause "else if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" (else "else") (if_statement "if ((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }\n        else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0))" (( "(") (binary_expression "(iVar4 == 0) &&\n                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8)" (identifier "iVar4") (= "=") (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8)" (identifier "FUN_00045230") (argument_list "(*(undefined4 *)(param_3 + 4),param_3 + 8)" (( "(") (pointer_expression "*(undefined4 *)(param_3 + 4)" (* "*") (cast_expression "(undefined4 *)(param_3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_000488c0:\n          iVar25 = param_1[7];\nLAB_000488c4:\n          pppppppuVar20 = param_4;\n          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);\n          if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }\n          iVar25 = *(int *)(iVar36 + 4);\n        }" ({ "{") (labeled_statement "LAB_000488c0:\n          iVar25 = param_1[7];" (statement_identifier "LAB_000488c0") (: ":") (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" (identifier "iVar25") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";"))) (labeled_statement "LAB_000488c4:\n          pppppppuVar20 = param_4;" (statement_identifier "LAB_000488c4") (: ":") (expression_statement "pppppppuVar20 = param_4;" (assignment_expression "pppppppuVar20 = param_4" (identifier "pppppppuVar20") (= "=") (identifier "param_4")) (; ";"))) (expression_statement "uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);" (assignment_expression "uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28)" (identifier "uVar5") (= "=") (call_expression "FUN_00046140(unaff_s7,param_4,iVar25 + iVar28)" (identifier "FUN_00046140") (argument_list "(unaff_s7,param_4,iVar25 + iVar28)" (( "(") (identifier "unaff_s7") (, ",") (identifier "param_4") (, ",") (binary_expression "iVar25 + iVar28" (identifier "iVar25") (+ "+") (identifier "iVar28")) () ")")))) (; ";")) (if_statement "if (uVar5 != 0) {\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR_free_00075bfc)(local_30);\n            goto LAB_00048a80;\n          }" ({ "{") (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" (( "(") (pointer_expression "*(code *)PTR_free_00075bfc" (* "*") (cast_expression "(code *)PTR_free_00075bfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00075bfc"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (goto_statement "goto LAB_00048a80;" (goto "goto") (statement_identifier "LAB_00048a80") (; ";")) (} "}"))) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar36 + 4)" (* "*") (cast_expression "(int *)(iVar36 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 4)" (( "(") (binary_expression "iVar36 + 4" (identifier "iVar36") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          pppppppuVar20 = unaff_s5;\n          if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }\n        }" ({ "{") (expression_statement "pppppppuVar20 = unaff_s5;" (assignment_expression "pppppppuVar20 = unaff_s5" (identifier "pppppppuVar20") (= "=") (identifier "unaff_s5")) (; ";")) (if_statement "if ((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }" (if "if") (parenthesized_expression "((0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0))" (( "(") (binary_expression "(0 < (int)puVar32[1]) &&\n             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)" (parenthesized_expression "(0 < (int)puVar32[1])" (( "(") (binary_expression "0 < (int)puVar32[1]" (number_literal "0") (< "<") (cast_expression "(int)puVar32[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)" (( "(") (comma_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0" (assignment_expression "iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1])" (identifier "iVar4") (= "=") (call_expression "FUN_00045230(iVar25,unaff_s5,puVar32[1])" (identifier "FUN_00045230") (argument_list "(iVar25,unaff_s5,puVar32[1])" (( "(") (identifier "iVar25") (, ",") (identifier "unaff_s5") (, ",") (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            pppppppuVar20 = (uint *******)(param_3 + 8);\n            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));\n            if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }\n          }" ({ "{") (expression_statement "pppppppuVar20 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar20 = (uint *******)(param_3 + 8)" (identifier "pppppppuVar20") (= "=") (cast_expression "(uint *******)(param_3 + 8)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));" (assignment_expression "iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4))" (identifier "iVar4") (= "=") (call_expression "FUN_00045230(*(undefined4 *)(param_3 + 4))" (identifier "FUN_00045230") (argument_list "(*(undefined4 *)(param_3 + 4))" (( "(") (pointer_expression "*(undefined4 *)(param_3 + 4)" (* "*") (cast_expression "(undefined4 *)(param_3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar25 = param_1[7];\n              goto LAB_000488c4;\n            }" ({ "{") (expression_statement "iVar25 = param_1[7];" (assignment_expression "iVar25 = param_1[7]" (identifier "iVar25") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (goto_statement "goto LAB_000488c4;" (goto "goto") (statement_identifier "LAB_000488c4") (; ";")) (} "}"))) (} "}"))) (} "}")))))) (} "}"))) (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"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s0 < iVar25)" (( "(") (binary_expression "unaff_s0 < iVar25" (identifier "unaff_s0") (< "<") (identifier "iVar25")) () ")")) (; ";")) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" (identifier "unaff_s2") (= "=") (identifier "param_2")) (; ";")) (expression_statement "unaff_s3 = param_3;" (assignment_expression "unaff_s3 = param_3" (identifier "unaff_s3") (= "=") (identifier "param_3")) (; ";")) (expression_statement "unaff_s8 = param_1;" (assignment_expression "unaff_s8 = param_1" (identifier "unaff_s8") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (0 < iVar25) {\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }" (if "if") (parenthesized_expression "(0 < iVar25)" (( "(") (binary_expression "0 < iVar25" (number_literal "0") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n      iVar4 = 0;\n      iVar28 = param_3 + 4;\n      pppppppuVar3 = (uint *******)(param_3 + 8);\n      pppppppuVar17 = &local_30;\n      do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);\n    }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar28 = param_3 + 4;" (assignment_expression "iVar28 = param_3 + 4" (identifier "iVar28") (= "=") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)(param_3 + 8);" (assignment_expression "pppppppuVar3 = (uint *******)(param_3 + 8)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)(param_3 + 8)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pppppppuVar17 = &local_30;" (assignment_expression "pppppppuVar17 = &local_30" (identifier "pppppppuVar17") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (do_statement "do {\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      } while (iVar4 < iVar25);" (do "do") (compound_statement "{\n        pppppppuVar37 = pppppppuVar17;\n        iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));\n        pppppppuVar20 = pppppppuVar17;\n        if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }\n        iVar4 = iVar4 + 1;\n        pppppppuVar17 = pppppppuVar37;\n      }" ({ "{") (expression_statement "pppppppuVar37 = pppppppuVar17;" (assignment_expression "pppppppuVar37 = pppppppuVar17" (identifier "pppppppuVar37") (= "=") (identifier "pppppppuVar17")) (; ";")) (expression_statement "iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));" (assignment_expression "iVar31 = FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" (identifier "iVar31") (= "=") (call_expression "FUN_00045230(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" (identifier "FUN_00045230") (argument_list "(local_34,pppppppuVar17,\n                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4))" (( "(") (identifier "local_34") (, ",") (identifier "pppppppuVar17") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar36 + 8) + iVar4 * 4)" (( "(") (binary_expression "*(int *)(iVar36 + 8) + iVar4 * 4" (pointer_expression "*(int *)(iVar36 + 8)" (* "*") (cast_expression "(int *)(iVar36 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 8)" (( "(") (binary_expression "iVar36 + 8" (identifier "iVar36") (+ "+") (number_literal "8")) () ")")))) (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) () ")")))) (; ";")) (expression_statement "pppppppuVar20 = pppppppuVar17;" (assignment_expression "pppppppuVar20 = pppppppuVar17" (identifier "pppppppuVar20") (= "=") (identifier "pppppppuVar17")) (; ";")) (if_statement "if (iVar31 == 0) {\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar29 = *(int *)(param_3 + 4);\n          pppppppuVar17 = pppppppuVar3;\n          iVar31 = FUN_00045230(iVar29);\n          pppppppuVar20 = pppppppuVar3;\n          pppppppuVar3 = pppppppuVar17;\n          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }\n        }" ({ "{") (expression_statement "iVar29 = *(int *)(param_3 + 4);" (assignment_expression "iVar29 = *(int *)(param_3 + 4)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pppppppuVar17 = pppppppuVar3;" (assignment_expression "pppppppuVar17 = pppppppuVar3" (identifier "pppppppuVar17") (= "=") (identifier "pppppppuVar3")) (; ";")) (expression_statement "iVar31 = FUN_00045230(iVar29);" (assignment_expression "iVar31 = FUN_00045230(iVar29)" (identifier "iVar31") (= "=") (call_expression "FUN_00045230(iVar29)" (identifier "FUN_00045230") (argument_list "(iVar29)" (( "(") (identifier "iVar29") () ")")))) (; ";")) (expression_statement "pppppppuVar20 = pppppppuVar3;" (assignment_expression "pppppppuVar20 = pppppppuVar3" (identifier "pppppppuVar20") (= "=") (identifier "pppppppuVar3")) (; ";")) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar17")) (; ";")) (if_statement "if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }" (if "if") (parenthesized_expression "((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29))" (( "(") (binary_expression "(-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)" (parenthesized_expression "(-1 < iVar31 + -1)" (( "(") (binary_expression "-1 < iVar31 + -1" (number_literal "-1") (< "<") (binary_expression "iVar31 + -1" (identifier "iVar31") (+ "+") (number_literal "-1"))) () ")")) (&& "&&") (parenthesized_expression "(iVar31 + -1 < iVar29)" (( "(") (binary_expression "iVar31 + -1 < iVar29" (binary_expression "iVar31 + -1" (identifier "iVar31") (+ "+") (number_literal "-1")) (< "<") (identifier "iVar29")) () ")"))) () ")")) (compound_statement "{\n            *(int *)(param_3 + 4) = iVar29 + -1;\n            FUN_00045494(iVar28);\n            iVar25 = *(int *)(iVar36 + 4);\n            pppppppuVar20 = pppppppuVar17;\n          }" ({ "{") (expression_statement "*(int *)(param_3 + 4) = iVar29 + -1;" (assignment_expression "*(int *)(param_3 + 4) = iVar29 + -1" (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "iVar29 + -1" (identifier "iVar29") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "FUN_00045494(iVar28);" (call_expression "FUN_00045494(iVar28)" (identifier "FUN_00045494") (argument_list "(iVar28)" (( "(") (identifier "iVar28") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(iVar36 + 4);" (assignment_expression "iVar25 = *(int *)(iVar36 + 4)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar36 + 4)" (* "*") (cast_expression "(int *)(iVar36 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 4)" (( "(") (binary_expression "iVar36 + 4" (identifier "iVar36") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pppppppuVar20 = pppppppuVar17;" (assignment_expression "pppppppuVar20 = pppppppuVar17" (identifier "pppppppuVar20") (= "=") (identifier "pppppppuVar17")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar17 = pppppppuVar37;" (assignment_expression "pppppppuVar17 = pppppppuVar37" (identifier "pppppppuVar17") (= "=") (identifier "pppppppuVar37")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 < iVar25)" (( "(") (binary_expression "iVar4 < iVar25" (identifier "iVar4") (< "<") (identifier "iVar25")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" (( "(") (pointer_expression "*(code *)PTR_free_00075bfc" (* "*") (cast_expression "(code *)PTR_free_00075bfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00075bfc"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = unaff_s2;" (assignment_expression "param_2 = unaff_s2" (identifier "param_2") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "param_3 = unaff_s3;" (assignment_expression "param_3 = unaff_s3" (identifier "param_3") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "param_1 = unaff_s8;" (assignment_expression "param_1 = unaff_s8" (identifier "param_1") (= "=") (identifier "unaff_s8")) (; ";")) (labeled_statement "LAB_00048a80:\n  if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }" (statement_identifier "LAB_00048a80") (: ":") (if_statement "if (local_2c == *(uint ********)puVar39) {\n    return uVar5;\n  }" (if "if") (parenthesized_expression "(local_2c == *(uint ********)puVar39)" (( "(") (binary_expression "local_2c == *(uint ********)puVar39" (identifier "local_2c") (== "==") (pointer_expression "*(uint ********)puVar39" (* "*") (cast_expression "(uint ********)puVar39" (( "(") (type_descriptor "uint ********" (type_identifier "uint") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (identifier "puVar39")))) () ")")) (compound_statement "{\n    return uVar5;\n  }" ({ "{") (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))) (expression_statement "uVar41 = 0x48af0;" (assignment_expression "uVar41 = 0x48af0" (identifier "uVar41") (= "=") (number_literal "0x48af0")) (; ";")) (expression_statement "pppppppuVar17 = local_2c;" (assignment_expression "pppppppuVar17 = local_2c" (identifier "pppppppuVar17") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar39 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar39 = PTR___stack_chk_fail_00075ba8" (identifier "puVar39") (= "=") (identifier "PTR___stack_chk_fail_00075ba8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00075ba8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(puVar39 + 0x2d0f8);" (assignment_expression "piVar6 = *(int **)(puVar39 + 0x2d0f8)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar39 + 0x2d0f8)" (* "*") (cast_expression "(int **)(puVar39 + 0x2d0f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d0f8)" (( "(") (binary_expression "puVar39 + 0x2d0f8" (identifier "puVar39") (+ "+") (number_literal "0x2d0f8")) () ")"))))) (; ";")) (expression_statement "local_84 = (int *)*piVar6;" (assignment_expression "local_84 = (int *)*piVar6" (identifier "local_84") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (expression_statement "pppppppuVar3 = pppppppuVar20;" (assignment_expression "pppppppuVar3 = pppppppuVar20" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar20")) (; ";")) (expression_statement "local_80 = unaff_s0;" (assignment_expression "local_80 = unaff_s0" (identifier "local_80") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "local_7c = iVar36;" (assignment_expression "local_7c = iVar36" (identifier "local_7c") (= "=") (identifier "iVar36")) (; ";")) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" (identifier "local_78") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_74 = param_3;" (assignment_expression "local_74 = param_3" (identifier "local_74") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_70 = puVar38;" (assignment_expression "local_70 = puVar38" (identifier "local_70") (= "=") (identifier "puVar38")) (; ";")) (expression_statement "local_6c = unaff_s5;" (assignment_expression "local_6c = unaff_s5" (identifier "local_6c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "local_68 = unaff_s6;" (assignment_expression "local_68 = unaff_s6" (identifier "local_68") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "local_64 = unaff_s7;" (assignment_expression "local_64 = unaff_s7" (identifier "local_64") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "local_60 = param_1;" (assignment_expression "local_60 = param_1" (identifier "local_60") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_5c = uVar41;" (assignment_expression "local_5c = uVar41" (identifier "local_5c") (= "=") (identifier "uVar41")) (; ";")) (expression_statement "iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);" (assignment_expression "iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(puVar39 + 0x2d03c))(0x2c00)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d03c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d03c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d03c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d03c)" (( "(") (binary_expression "puVar39 + 0x2d03c" (identifier "puVar39") (+ "+") (number_literal "0x2d03c")) () ")"))))) () ")")) (argument_list "(0x2c00)" (( "(") (number_literal "0x2c00") () ")")))) (; ";")) (if_statement "if (iVar25 == 0) goto LAB_00048f5c;" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00048f5c;" (goto "goto") (statement_identifier "LAB_00048f5c") (; ";"))) (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" (identifier "ppppppuVar18") (= "=") (subscript_expression "pppppppuVar20[2]" (identifier "pppppppuVar20") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppppuVar20[0xb] = (uint ******)0x0;" (assignment_expression "pppppppuVar20[0xb] = (uint ******)0x0" (subscript_expression "pppppppuVar20[0xb]" (identifier "pppppppuVar20") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar7 = (uint *)(iVar25 + 0xc00);" (assignment_expression "puVar7 = (uint *)(iVar25 + 0xc00)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(iVar25 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0xc00)" (( "(") (binary_expression "iVar25 + 0xc00" (identifier "iVar25") (+ "+") (number_literal "0xc00")) () ")")))) (; ";")) (expression_statement "pppppppuVar20[0xc] = (uint ******)0x0;" (assignment_expression "pppppppuVar20[0xc] = (uint ******)0x0" (subscript_expression "pppppppuVar20[0xc]" (identifier "pppppppuVar20") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" (identifier "local_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)ppppppuVar18) {\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" (if "if") (parenthesized_expression "(0 < (int)ppppppuVar18)" (( "(") (binary_expression "0 < (int)ppppppuVar18" (number_literal "0") (< "<") (cast_expression "(int)ppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar18"))) () ")")) (compound_statement "{\n    iVar36 = *(int *)(puVar39 + 0x2ce30);\n    local_124 = 0;\n    iVar4 = *(int *)(puVar39 + 0x2ce30);\n    pppppppuVar37 = (uint *******)0x0;\nLAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;\n    bVar1 = *(byte *)(ppppppuVar35 + 1);\n    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;\n    if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }\nLAB_00048c28:\n    local_124 = local_124 + 1;\n    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;\n    goto LAB_00048bd4;\n  }" ({ "{") (expression_statement "iVar36 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar36 = *(int *)(puVar39 + 0x2ce30)" (identifier "iVar36") (= "=") (pointer_expression "*(int *)(puVar39 + 0x2ce30)" (* "*") (cast_expression "(int *)(puVar39 + 0x2ce30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar39 + 0x2ce30)" (( "(") (binary_expression "puVar39 + 0x2ce30" (identifier "puVar39") (+ "+") (number_literal "0x2ce30")) () ")"))))) (; ";")) (expression_statement "local_124 = 0;" (assignment_expression "local_124 = 0" (identifier "local_124") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar4 = *(int *)(puVar39 + 0x2ce30)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar39 + 0x2ce30)" (* "*") (cast_expression "(int *)(puVar39 + 0x2ce30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar39 + 0x2ce30)" (( "(") (binary_expression "puVar39 + 0x2ce30" (identifier "puVar39") (+ "+") (number_literal "0x2ce30")) () ")"))))) (; ";")) (expression_statement "pppppppuVar37 = (uint *******)0x0;" (assignment_expression "pppppppuVar37 = (uint *******)0x0" (identifier "pppppppuVar37") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00048bd4:\n    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;" (statement_identifier "LAB_00048bd4") (: ":") (expression_statement "ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;" (assignment_expression "ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2" (identifier "ppppppuVar35") (= "=") (binary_expression "*pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2" (pointer_expression "*pppppppuVar17" (* "*") (identifier "pppppppuVar17")) (+ "+") (binary_expression "(int)pppppppuVar20[3][local_124] * 2" (cast_expression "(int)pppppppuVar20[3][local_124]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar20[3][local_124]" (subscript_expression "pppppppuVar20[3]" (identifier "pppppppuVar20") ([ "[") (number_literal "3") (] "]")) ([ "[") (identifier "local_124") (] "]"))) (* "*") (number_literal "2")))) (; ";"))) (expression_statement "bVar1 = *(byte *)(ppppppuVar35 + 1);" (assignment_expression "bVar1 = *(byte *)(ppppppuVar35 + 1)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(ppppppuVar35 + 1)" (* "*") (cast_expression "(byte *)(ppppppuVar35 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppuVar35 + 1)" (( "(") (binary_expression "ppppppuVar35 + 1" (identifier "ppppppuVar35") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;" (assignment_expression "uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16" (identifier "uVar5") (= "=") (binary_expression "(uint)((int)ppppppuVar35[1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppuVar35[1] << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppppppuVar35[1] << 8)" (( "(") (binary_expression "(int)ppppppuVar35[1] << 8" (cast_expression "(int)ppppppuVar35[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppuVar35[1]" (identifier "ppppppuVar35") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "8")) () ")"))) (>> ">>") (number_literal "0x16"))) (; ";")) (if_statement "if (bVar1 == 1) {\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }\n    else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" (if "if") (parenthesized_expression "(bVar1 == 1)" (( "(") (binary_expression "bVar1 == 1" (identifier "bVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));\n      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));\n      *pppppppuVar34 = (uint ******)pppppppuVar3;\nLAB_00048fc0:\n      pppppppuVar34 = local_e4;\n      if (uVar5 == 0) goto LAB_000490bc;\n      if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }\n      local_e4 = (uint *******)0x0;\n      local_e0 = 0;\n      local_dc = 0;\n      local_d8 = 0;\n      local_d4 = 0;\n      local_d0 = 0;\n      local_cc = 0;\n      local_c8 = 0;\n    }" ({ "{") (expression_statement "pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));" (assignment_expression "pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" (identifier "pppppppuVar34") (= "=") (cast_expression "(uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" (( "(") (binary_expression "&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5)" (pointer_expression "&local_e4" (& "&") (identifier "local_e4")) (+ "+") (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar35 >> 5)" (( "(") (binary_expression "(int)(uint)*(byte *)ppppppuVar35 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar35" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)ppppppuVar35" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar35"))) (>> ">>") (number_literal "5")) () ")"))) () ")")))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f))" (( "(") (binary_expression "(uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f)" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar34")) (| "|") (binary_expression "1 << (*(byte *)ppppppuVar35 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*(byte *)ppppppuVar35 & 0x1f)" (( "(") (binary_expression "*(byte *)ppppppuVar35 & 0x1f" (pointer_expression "*(byte *)ppppppuVar35" (* "*") (cast_expression "(byte *)ppppppuVar35" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar35"))) (& "&") (number_literal "0x1f")) () ")")))) () ")")))) (; ";")) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" (* "*") (identifier "pppppppuVar34")) (= "=") (cast_expression "(uint ******)pppppppuVar3" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar3"))) (; ";")) (labeled_statement "LAB_00048fc0:\n      pppppppuVar34 = local_e4;" (statement_identifier "LAB_00048fc0") (: ":") (expression_statement "pppppppuVar34 = local_e4;" (assignment_expression "pppppppuVar34 = local_e4" (identifier "pppppppuVar34") (= "=") (identifier "local_e4")) (; ";"))) (if_statement "if (uVar5 == 0) goto LAB_000490bc;" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000490bc;" (goto "goto") (statement_identifier "LAB_000490bc") (; ";"))) (if_statement "if ((uVar5 & 0x20) == 0) {\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }\n      else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" (if "if") (parenthesized_expression "((uVar5 & 0x20) == 0)" (( "(") (binary_expression "(uVar5 & 0x20) == 0" (parenthesized_expression "(uVar5 & 0x20)" (( "(") (binary_expression "uVar5 & 0x20" (identifier "uVar5") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar5 & 0x80) != 0) goto LAB_00049388;\nLAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }\n        if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }\n        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }\n        local_e4 = (uint *******)0x0;\n      }" ({ "{") (if_statement "if ((uVar5 & 0x80) != 0) goto LAB_00049388;" (if "if") (parenthesized_expression "((uVar5 & 0x80) != 0)" (( "(") (binary_expression "(uVar5 & 0x80) != 0" (parenthesized_expression "(uVar5 & 0x80)" (( "(") (binary_expression "uVar5 & 0x80" (identifier "uVar5") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049388;" (goto "goto") (statement_identifier "LAB_00049388") (; ";"))) (labeled_statement "LAB_00048fdc:\n        if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" (statement_identifier "LAB_00048fdc") (: ":") (if_statement "if ((uVar5 & 4) != 0) {\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" (if "if") (parenthesized_expression "((uVar5 & 4) != 0)" (( "(") (binary_expression "(uVar5 & 4) != 0" (parenthesized_expression "(uVar5 & 4)" (( "(") (binary_expression "uVar5 & 4" (identifier "uVar5") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }\n          if (uVar21 == 0) goto LAB_00048c28;\n        }" ({ "{") (if_statement "if (bVar1 == 1) {\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" (if "if") (parenthesized_expression "(bVar1 == 1)" (( "(") (binary_expression "bVar1 == 1" (identifier "bVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" ({ "{") (if_statement "if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;" (if "if") (parenthesized_expression "(((uint)ppppppuVar35[1] & 0x200) == 0)" (( "(") (binary_expression "((uint)ppppppuVar35[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar35[1] & 0x200)" (( "(") (binary_expression "(uint)ppppppuVar35[1] & 0x200" (cast_expression "(uint)ppppppuVar35[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppuVar35[1]" (identifier "ppppppuVar35") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049388;" (goto "goto") (statement_identifier "LAB_00049388") (; ";"))) (expression_statement "ppppppuVar11 = pppppppuVar17[0x17];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x17]" (identifier "ppppppuVar11") (= "=") (subscript_expression "pppppppuVar17[0x17]" (identifier "pppppppuVar17") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" (else "else") (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0x17];\n          }" ({ "{") (expression_statement "ppppppuVar11 = pppppppuVar17[0x17];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x17]" (identifier "ppppppuVar11") (= "=") (subscript_expression "pppppppuVar17[0x17]" (identifier "pppppppuVar17") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (} "}")))) (if_statement "if ((int)ppppppuVar11 < 2) {\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" (if "if") (parenthesized_expression "((int)ppppppuVar11 < 2)" (( "(") (binary_expression "(int)ppppppuVar11 < 2" (cast_expression "(int)ppppppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar11")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" ({ "{") (expression_statement "pppppppuVar15 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar15 = pppppppuVar17 + 0x18" (identifier "pppppppuVar15") (= "=") (binary_expression "pppppppuVar17 + 0x18" (identifier "pppppppuVar17") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" (identifier "pppppppuVar34") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (do_statement "do {\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);" (do "do") (compound_statement "{\n              pppppppuVar14 = pppppppuVar34 + 1;\n              ppppppuVar11 = *pppppppuVar15;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);\n              *pppppppuVar34 = (uint ******)pppppppuVar3;\n              uVar21 = uVar21 | (uint)pppppppuVar3;\n              pppppppuVar34 = pppppppuVar14;\n            }" ({ "{") (expression_statement "pppppppuVar14 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar34 + 1" (identifier "pppppppuVar14") (= "=") (binary_expression "pppppppuVar34 + 1" (identifier "pppppppuVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar11 = *pppppppuVar15;" (assignment_expression "ppppppuVar11 = *pppppppuVar15" (identifier "ppppppuVar11") (= "=") (pointer_expression "*pppppppuVar15" (* "*") (identifier "pppppppuVar15"))) (; ";")) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" (identifier "pppppppuVar15") (= "=") (binary_expression "pppppppuVar15 + 1" (identifier "pppppppuVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar34 & (uint)ppppppuVar11)" (( "(") (binary_expression "(uint)*pppppppuVar34 & (uint)ppppppuVar11" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar34")) (& "&") (cast_expression "(uint)ppppppuVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar11"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" (* "*") (identifier "pppppppuVar34")) (= "=") (cast_expression "(uint ******)pppppppuVar3" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar3"))) (; ";")) (expression_statement "uVar21 = uVar21 | (uint)pppppppuVar3;" (assignment_expression "uVar21 = uVar21 | (uint)pppppppuVar3" (identifier "uVar21") (= "=") (binary_expression "uVar21 | (uint)pppppppuVar3" (identifier "uVar21") (| "|") (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")))) (; ";")) (expression_statement "pppppppuVar34 = pppppppuVar14;" (assignment_expression "pppppppuVar34 = pppppppuVar14" (identifier "pppppppuVar34") (= "=") (identifier "pppppppuVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_c4 != pppppppuVar14)" (( "(") (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" (& "&") (identifier "local_c4")) (!= "!=") (identifier "pppppppuVar14")) () ")")) (; ";")) (} "}")) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" (else "else") (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar15 = pppppppuVar17 + 0x18;\n            uVar21 = 0;\n            pppppppuVar34 = (uint *******)&local_e4;\n            do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);\n          }" ({ "{") (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" (identifier "ppppppuVar11") (= "=") (subscript_expression "pppppppuVar17[0xf]" (identifier "pppppppuVar17") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "pppppppuVar15 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar15 = pppppppuVar17 + 0x18" (identifier "pppppppuVar15") (= "=") (binary_expression "pppppppuVar17 + 0x18" (identifier "pppppppuVar17") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" (identifier "pppppppuVar34") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (do_statement "do {\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            } while (&local_c4 != pppppppuVar3);" (do "do") (compound_statement "{\n              pppppppuVar3 = pppppppuVar34 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar15;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar15 = pppppppuVar15 + 1;\n              ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);\n              *pppppppuVar34 = ppppppuVar26;\n              uVar21 = uVar21 | (uint)ppppppuVar26;\n              pppppppuVar34 = pppppppuVar3;\n            }" ({ "{") (expression_statement "pppppppuVar3 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar3 = pppppppuVar34 + 1" (identifier "pppppppuVar3") (= "=") (binary_expression "pppppppuVar34 + 1" (identifier "pppppppuVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" (identifier "pppppuVar16") (= "=") (pointer_expression "*ppppppuVar11" (* "*") (identifier "ppppppuVar11"))) (; ";")) (expression_statement "ppppppuVar26 = *pppppppuVar15;" (assignment_expression "ppppppuVar26 = *pppppppuVar15" (identifier "ppppppuVar26") (= "=") (pointer_expression "*pppppppuVar15" (* "*") (identifier "pppppppuVar15"))) (; ";")) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" (identifier "ppppppuVar11") (= "=") (binary_expression "ppppppuVar11 + 1" (identifier "ppppppuVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" (identifier "pppppppuVar15") (= "=") (binary_expression "pppppppuVar15 + 1" (identifier "pppppppuVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);" (assignment_expression "ppppppuVar26 = (uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" (identifier "ppppppuVar26") (= "=") (cast_expression "(uint ******)\n                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34)" (( "(") (binary_expression "(~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34" (parenthesized_expression "(~(uint)pppppuVar16 | (uint)ppppppuVar26)" (( "(") (binary_expression "~(uint)pppppuVar16 | (uint)ppppppuVar26" (unary_expression "~(uint)pppppuVar16" (~ "~") (cast_expression "(uint)pppppuVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar16"))) (| "|") (cast_expression "(uint)ppppppuVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar26"))) () ")")) (& "&") (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar34"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar34 = ppppppuVar26;" (assignment_expression "*pppppppuVar34 = ppppppuVar26" (pointer_expression "*pppppppuVar34" (* "*") (identifier "pppppppuVar34")) (= "=") (identifier "ppppppuVar26")) (; ";")) (expression_statement "uVar21 = uVar21 | (uint)ppppppuVar26;" (assignment_expression "uVar21 = uVar21 | (uint)ppppppuVar26" (identifier "uVar21") (= "=") (binary_expression "uVar21 | (uint)ppppppuVar26" (identifier "uVar21") (| "|") (cast_expression "(uint)ppppppuVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar26")))) (; ";")) (expression_statement "pppppppuVar34 = pppppppuVar3;" (assignment_expression "pppppppuVar34 = pppppppuVar3" (identifier "pppppppuVar34") (= "=") (identifier "pppppppuVar3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_c4 != pppppppuVar3)" (( "(") (binary_expression "&local_c4 != pppppppuVar3" (pointer_expression "&local_c4" (& "&") (identifier "local_c4")) (!= "!=") (identifier "pppppppuVar3")) () ")")) (; ";")) (} "}")))) (if_statement "if (uVar21 == 0) goto LAB_00048c28;" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00048c28;" (goto "goto") (statement_identifier "LAB_00048c28") (; ";"))) (} "}")))) (if_statement "if ((uVar5 & 8) == 0) {\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }" (if "if") (parenthesized_expression "((uVar5 & 8) == 0)" (( "(") (binary_expression "(uVar5 & 8) == 0" (parenthesized_expression "(uVar5 & 8)" (( "(") (binary_expression "uVar5 & 8" (identifier "uVar5") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;\n          if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }\n          local_118 = (int)pppppppuVar37 * 2;\n          if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }\n          ppppppuVar18 = pppppppuVar20[2];\n          goto LAB_00048c28;\n        }" ({ "{") (labeled_statement "LAB_000490bc:\n          pppppppuVar34 = (uint *******)0x0;" (statement_identifier "LAB_000490bc") (: ":") (expression_statement "pppppppuVar34 = (uint *******)0x0;" (assignment_expression "pppppppuVar34 = (uint *******)0x0" (identifier "pppppppuVar34") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (0 < (int)pppppppuVar37) {\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }" (if "if") (parenthesized_expression "(0 < (int)pppppppuVar37)" (( "(") (binary_expression "0 < (int)pppppppuVar37" (number_literal "0") (< "<") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37"))) () ")")) (compound_statement "{\n            pppppppuVar34 = (uint *******)0x0;\n            puVar12 = puVar7;\n            do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);\n          }" ({ "{") (expression_statement "pppppppuVar34 = (uint *******)0x0;" (assignment_expression "pppppppuVar34 = (uint *******)0x0" (identifier "pppppppuVar34") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" (identifier "puVar12") (= "=") (identifier "puVar7")) (; ";")) (do_statement "do {\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            } while ((int)pppppppuVar34 < (int)pppppppuVar37);" (do "do") (compound_statement "{\n              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);\n              if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }\n              puVar12 = puVar12 + 8;\n              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);\n            }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((int)pppppppuVar34 * 0x20)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar34 * 0x20)" (( "(") (binary_expression "(int)pppppppuVar34 * 0x20" (cast_expression "(int)pppppppuVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar34")) (* "*") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }" (if "if") (parenthesized_expression "((bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0))" (( "(") (binary_expression "(bVar1 != 1) ||\n                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)" (parenthesized_expression "(bVar1 != 1)" (( "(") (binary_expression "bVar1 != 1" (identifier "bVar1") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)" (( "(") (binary_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0" (parenthesized_expression "((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1)" (( "(") (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f) & 1" (binary_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>\n                   (*(byte *)ppppppuVar35 & 0x1f)" (subscript_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8]" (parenthesized_expression "(puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))" (( "(") (binary_expression "puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5)" (identifier "puVar7") (+ "+") (parenthesized_expression "((int)(uint)*(byte *)ppppppuVar35 >> 5)" (( "(") (binary_expression "(int)(uint)*(byte *)ppppppuVar35 >> 5" (binary_expression "(int)(uint)*(byte *)ppppppuVar35" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)ppppppuVar35" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar35"))) (>> ">>") (number_literal "5")) () ")"))) () ")")) ([ "[") (binary_expression "(int)pppppppuVar34 * 8" (cast_expression "(int)pppppppuVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar34")) (* "*") (number_literal "8")) (] "]")) (>> ">>") (parenthesized_expression "(*(byte *)ppppppuVar35 & 0x1f)" (( "(") (binary_expression "*(byte *)ppppppuVar35 & 0x1f" (pointer_expression "*(byte *)ppppppuVar35" (* "*") (cast_expression "(byte *)ppppppuVar35" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppuVar35"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                uVar5 = 0;\n                pppppppuVar3 = (uint *******)&local_e4;\n                pppppppuVar15 = &local_c4;\n                puVar27 = puVar12;\n                do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);\n                pppppppuVar3 = (uint *******)&local_e4;\n                if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }\n              }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (expression_statement "pppppppuVar15 = &local_c4;" (assignment_expression "pppppppuVar15 = &local_c4" (identifier "pppppppuVar15") (= "=") (pointer_expression "&local_c4" (& "&") (identifier "local_c4"))) (; ";")) (expression_statement "puVar27 = puVar12;" (assignment_expression "puVar27 = puVar12" (identifier "puVar27") (= "=") (identifier "puVar12")) (; ";")) (do_statement "do {\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                } while (&local_c4 != pppppppuVar14);" (do "do") (compound_statement "{\n                  pppppppuVar14 = pppppppuVar3 + 1;\n                  uVar21 = *puVar27;\n                  ppppppuVar18 = *pppppppuVar3;\n                  puVar27 = puVar27 + 1;\n                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);\n                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;\n                  pppppppuVar3 = pppppppuVar14;\n                  pppppppuVar15 = pppppppuVar15 + 1;\n                }" ({ "{") (expression_statement "pppppppuVar14 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar3 + 1" (identifier "pppppppuVar14") (= "=") (binary_expression "pppppppuVar3 + 1" (identifier "pppppppuVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar21 = *puVar27;" (assignment_expression "uVar21 = *puVar27" (identifier "uVar21") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "ppppppuVar18 = *pppppppuVar3;" (assignment_expression "ppppppuVar18 = *pppppppuVar3" (identifier "ppppppuVar18") (= "=") (pointer_expression "*pppppppuVar3" (* "*") (identifier "pppppppuVar3"))) (; ";")) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" (identifier "puVar27") (= "=") (binary_expression "puVar27 + 1" (identifier "puVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);" (assignment_expression "*pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21)" (pointer_expression "*pppppppuVar15" (* "*") (identifier "pppppppuVar15")) (= "=") (cast_expression "(uint ******)((uint)ppppppuVar18 & uVar21)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((uint)ppppppuVar18 & uVar21)" (( "(") (binary_expression "(uint)ppppppuVar18 & uVar21" (cast_expression "(uint)ppppppuVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar18")) (& "&") (identifier "uVar21")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;" (assignment_expression "uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21" (identifier "uVar5") (= "=") (binary_expression "uVar5 | (uint)ppppppuVar18 & uVar21" (identifier "uVar5") (| "|") (binary_expression "(uint)ppppppuVar18 & uVar21" (cast_expression "(uint)ppppppuVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar18")) (& "&") (identifier "uVar21")))) (; ";")) (expression_statement "pppppppuVar3 = pppppppuVar14;" (assignment_expression "pppppppuVar3 = pppppppuVar14" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar14")) (; ";")) (expression_statement "pppppppuVar15 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar15 + 1" (identifier "pppppppuVar15") (= "=") (binary_expression "pppppppuVar15 + 1" (identifier "pppppppuVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_c4 != pppppppuVar14)" (( "(") (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" (& "&") (identifier "local_c4")) (!= "!=") (identifier "pppppppuVar14")) () ")")) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (if_statement "if (uVar5 != 0) {\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar21 = 0;\n                  uVar5 = 0;\n                  puVar27 = puVar12;\n                  ppiVar30 = &local_a4;\n                  do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);\n                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);\n                  if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }\n                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];\n                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);\n                  if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }\n                  if (uVar21 == 0) break;\n                }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar27 = puVar12;" (assignment_expression "puVar27 = puVar12" (identifier "puVar27") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "ppiVar30 = &local_a4;" (assignment_expression "ppiVar30 = &local_a4" (identifier "ppiVar30") (= "=") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) (; ";")) (do_statement "do {\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  } while (puVar12 + 8 != puVar27);" (do "do") (compound_statement "{\n                    uVar23 = *puVar27;\n                    puVar27 = puVar27 + 1;\n                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);\n                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);\n                    *ppiVar30 = piVar33;\n                    *pppppppuVar3 = ppppppuVar18;\n                    uVar5 = uVar5 | (uint)piVar33;\n                    uVar21 = uVar21 | (uint)ppppppuVar18;\n                    pppppppuVar3 = pppppppuVar3 + 1;\n                    ppiVar30 = ppiVar30 + 1;\n                  }" ({ "{") (expression_statement "uVar23 = *puVar27;" (assignment_expression "uVar23 = *puVar27" (identifier "uVar23") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" (identifier "puVar27") (= "=") (binary_expression "puVar27 + 1" (identifier "puVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);" (assignment_expression "piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23)" (identifier "piVar33") (= "=") (cast_expression "(int *)(~(uint)*pppppppuVar3 & uVar23)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~(uint)*pppppppuVar3 & uVar23)" (( "(") (binary_expression "~(uint)*pppppppuVar3 & uVar23" (binary_expression "~(uint)*pppppppuVar3" (unary_expression "~(uint)" (~ "~") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pppppppuVar3")) (& "&") (identifier "uVar23")) () ")")))) (; ";")) (expression_statement "ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);" (assignment_expression "ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3)" (identifier "ppppppuVar18") (= "=") (cast_expression "(uint ******)(~uVar23 & (uint)*pppppppuVar3)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(~uVar23 & (uint)*pppppppuVar3)" (( "(") (binary_expression "~uVar23 & (uint)*pppppppuVar3" (unary_expression "~uVar23" (~ "~") (identifier "uVar23")) (& "&") (binary_expression "(uint)*pppppppuVar3" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar3"))) () ")")))) (; ";")) (expression_statement "*ppiVar30 = piVar33;" (assignment_expression "*ppiVar30 = piVar33" (pointer_expression "*ppiVar30" (* "*") (identifier "ppiVar30")) (= "=") (identifier "piVar33")) (; ";")) (expression_statement "*pppppppuVar3 = ppppppuVar18;" (assignment_expression "*pppppppuVar3 = ppppppuVar18" (pointer_expression "*pppppppuVar3" (* "*") (identifier "pppppppuVar3")) (= "=") (identifier "ppppppuVar18")) (; ";")) (expression_statement "uVar5 = uVar5 | (uint)piVar33;" (assignment_expression "uVar5 = uVar5 | (uint)piVar33" (identifier "uVar5") (= "=") (binary_expression "uVar5 | (uint)piVar33" (identifier "uVar5") (| "|") (cast_expression "(uint)piVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar33")))) (; ";")) (expression_statement "uVar21 = uVar21 | (uint)ppppppuVar18;" (assignment_expression "uVar21 = uVar21 | (uint)ppppppuVar18" (identifier "uVar21") (= "=") (binary_expression "uVar21 | (uint)ppppppuVar18" (identifier "uVar21") (| "|") (cast_expression "(uint)ppppppuVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar18")))) (; ";")) (expression_statement "pppppppuVar3 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar3 = pppppppuVar3 + 1" (identifier "pppppppuVar3") (= "=") (binary_expression "pppppppuVar3 + 1" (identifier "pppppppuVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" (identifier "ppiVar30") (= "=") (binary_expression "ppiVar30 + 1" (identifier "ppiVar30") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar12 + 8 != puVar27)" (( "(") (binary_expression "puVar12 + 8 != puVar27" (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8")) (!= "!=") (identifier "puVar27")) () ")")) (; ";")) (expression_statement "pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);" (assignment_expression "pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc)" (identifier "pppppppuVar15") (= "=") (cast_expression "(uint *******)(iVar25 + (int)pppppppuVar34 * 0xc)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar25 + (int)pppppppuVar34 * 0xc)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar34 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar34 * 0xc" (cast_expression "(int)pppppppuVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar34")) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (if_statement "if (uVar5 != 0) {\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_118 = (int)pppppppuVar37 * 2;\n                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;\n                    *puVar27 = (uint)local_a4;\n                    puVar27[1] = local_a0;\n                    puVar27[2] = local_9c;\n                    puVar27[3] = local_98;\n                    puVar27[4] = local_94;\n                    puVar27[5] = local_90;\n                    puVar27[6] = local_8c;\n                    puVar27[7] = local_88;\n                    puVar12[1] = local_c0;\n                    puVar12[2] = local_bc;\n                    *puVar12 = (uint)local_c4;\n                    puVar12[3] = local_b8;\n                    puVar12[4] = local_b4;\n                    puVar12[5] = local_b0;\n                    puVar12[6] = local_ac;\n                    puVar12[7] = local_a8;\n                    pppppppuVar3 = pppppppuVar15;\n                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);\n                    if (iVar28 != 0) goto LAB_000493b8;\n                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n                  }" ({ "{") (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" (identifier "local_118") (= "=") (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "puVar27 = puVar7 + (int)pppppppuVar37 * 8;" (assignment_expression "puVar27 = puVar7 + (int)pppppppuVar37 * 8" (identifier "puVar27") (= "=") (binary_expression "puVar7 + (int)pppppppuVar37 * 8" (identifier "puVar7") (+ "+") (binary_expression "(int)pppppppuVar37 * 8" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "*puVar27 = (uint)local_a4;" (assignment_expression "*puVar27 = (uint)local_a4" (pointer_expression "*puVar27" (* "*") (identifier "puVar27")) (= "=") (cast_expression "(uint)local_a4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_a4"))) (; ";")) (expression_statement "puVar27[1] = local_a0;" (assignment_expression "puVar27[1] = local_a0" (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "puVar27[2] = local_9c;" (assignment_expression "puVar27[2] = local_9c" (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "puVar27[3] = local_98;" (assignment_expression "puVar27[3] = local_98" (subscript_expression "puVar27[3]" (identifier "puVar27") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_98")) (; ";")) (expression_statement "puVar27[4] = local_94;" (assignment_expression "puVar27[4] = local_94" (subscript_expression "puVar27[4]" (identifier "puVar27") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_94")) (; ";")) (expression_statement "puVar27[5] = local_90;" (assignment_expression "puVar27[5] = local_90" (subscript_expression "puVar27[5]" (identifier "puVar27") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_90")) (; ";")) (expression_statement "puVar27[6] = local_8c;" (assignment_expression "puVar27[6] = local_8c" (subscript_expression "puVar27[6]" (identifier "puVar27") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "puVar27[7] = local_88;" (assignment_expression "puVar27[7] = local_88" (subscript_expression "puVar27[7]" (identifier "puVar27") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_88")) (; ";")) (expression_statement "puVar12[1] = local_c0;" (assignment_expression "puVar12[1] = local_c0" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "puVar12[2] = local_bc;" (assignment_expression "puVar12[2] = local_bc" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*puVar12 = (uint)local_c4;" (assignment_expression "*puVar12 = (uint)local_c4" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4"))) (; ";")) (expression_statement "puVar12[3] = local_b8;" (assignment_expression "puVar12[3] = local_b8" (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "puVar12[4] = local_b4;" (assignment_expression "puVar12[4] = local_b4" (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "puVar12[5] = local_b0;" (assignment_expression "puVar12[5] = local_b0" (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "puVar12[6] = local_ac;" (assignment_expression "puVar12[6] = local_ac" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_ac")) (; ";")) (expression_statement "puVar12[7] = local_a8;" (assignment_expression "puVar12[7] = local_a8" (subscript_expression "puVar12[7]" (identifier "puVar12") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "pppppppuVar3 = pppppppuVar15;" (assignment_expression "pppppppuVar3 = pppppppuVar15" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar15")) (; ";")) (expression_statement "iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);" (assignment_expression "iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc)" (identifier "iVar28") (= "=") (call_expression "(*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc)" (parenthesized_expression "(*(code *)(iVar4 + 0x69e0))" (( "(") (pointer_expression "*(code *)(iVar4 + 0x69e0)" (* "*") (cast_expression "(code *)(iVar4 + 0x69e0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x69e0)" (( "(") (binary_expression "iVar4 + 0x69e0" (identifier "iVar4") (+ "+") (number_literal "0x69e0")) () ")")))) () ")")) (argument_list "(iVar25 + (int)pppppppuVar37 * 0xc)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (if_statement "if (iVar28 != 0) goto LAB_000493b8;" (if "if") (parenthesized_expression "(iVar28 != 0)" (( "(") (binary_expression "iVar28 != 0" (identifier "iVar28") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000493b8;" (goto "goto") (statement_identifier "LAB_000493b8") (; ";"))) (expression_statement "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);" (assignment_expression "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1)" (identifier "pppppppuVar37") (= "=") (cast_expression "(uint *******)((int)pppppppuVar37 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar37 + 1)" (( "(") (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];" (assignment_expression "pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124]" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)pppppppuVar20[3][local_124]" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppuVar20[3][local_124]" (subscript_expression "pppppppuVar20[3]" (identifier "pppppppuVar20") ([ "[") (number_literal "3") (] "]")) ([ "[") (identifier "local_124") (] "]")))) (; ";")) (expression_statement "iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);" (assignment_expression "iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15)" (identifier "iVar28") (= "=") (call_expression "(*(code *)(iVar36 + 0x33f8))(pppppppuVar15)" (parenthesized_expression "(*(code *)(iVar36 + 0x33f8))" (( "(") (pointer_expression "*(code *)(iVar36 + 0x33f8)" (* "*") (cast_expression "(code *)(iVar36 + 0x33f8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x33f8)" (( "(") (binary_expression "iVar36 + 0x33f8" (identifier "iVar36") (+ "+") (number_literal "0x33f8")) () ")")))) () ")")) (argument_list "(pppppppuVar15)" (( "(") (identifier "pppppppuVar15") () ")")))) (; ";")) (if_statement "if (iVar28 == 0) {\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    local_118 = (int)pppppppuVar37 << 1;\n                    goto LAB_000493b8;\n                  }" ({ "{") (expression_statement "local_118 = (int)pppppppuVar37 << 1;" (assignment_expression "local_118 = (int)pppppppuVar37 << 1" (identifier "local_118") (= "=") (binary_expression "(int)pppppppuVar37 << 1" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (<< "<<") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_000493b8;" (goto "goto") (statement_identifier "LAB_000493b8") (; ";")) (} "}"))) (if_statement "if (uVar21 == 0) break;" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);" (assignment_expression "pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1)" (identifier "pppppppuVar34") (= "=") (cast_expression "(uint *******)((int)pppppppuVar34 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar34 + 1)" (( "(") (binary_expression "(int)pppppppuVar34 + 1" (cast_expression "(int)pppppppuVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar34")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pppppppuVar34 < (int)pppppppuVar37)" (( "(") (binary_expression "(int)pppppppuVar34 < (int)pppppppuVar37" (cast_expression "(int)pppppppuVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar34")) (< "<") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37"))) () ")")) (; ";")) (} "}"))) (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" (identifier "local_118") (= "=") (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "2"))) (; ";")) (if_statement "if (pppppppuVar37 == pppppppuVar34) {\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }" (if "if") (parenthesized_expression "(pppppppuVar37 == pppppppuVar34)" (( "(") (binary_expression "pppppppuVar37 == pppppppuVar34" (identifier "pppppppuVar37") (== "==") (identifier "pppppppuVar34")) () ")")) (compound_statement "{\n            ppppppuVar18 = pppppppuVar20[3];\n            pcVar8 = *(code **)(puVar39 + 0x2d03c);\n            puVar12 = puVar7 + (int)pppppppuVar37 * 8;\n            *puVar12 = (uint)local_e4;\n            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);\n            puVar12[1] = local_e0;\n            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);\n            puVar12[2] = local_dc;\n            puVar12[3] = local_d8;\n            puVar12[4] = local_d4;\n            puVar12[5] = local_d0;\n            puVar12[6] = local_cc;\n            puVar12[7] = local_c8;\n            ppppppuVar35 = *pppppppuVar3;\n            *puVar32 = 1;\n            puVar32[1] = 1;\n            puVar12 = (uint *)(*pcVar8)(4);\n            puVar32[2] = puVar12;\n            if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }\n            puVar32[1] = 0;\n            *puVar32 = 0;\n            if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            goto LAB_00048f5c;\n          }" ({ "{") (expression_statement "ppppppuVar18 = pppppppuVar20[3];" (assignment_expression "ppppppuVar18 = pppppppuVar20[3]" (identifier "ppppppuVar18") (= "=") (subscript_expression "pppppppuVar20[3]" (identifier "pppppppuVar20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d03c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d03c)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(puVar39 + 0x2d03c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d03c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d03c)" (( "(") (binary_expression "puVar39 + 0x2d03c" (identifier "puVar39") (+ "+") (number_literal "0x2d03c")) () ")"))))) (; ";")) (expression_statement "puVar12 = puVar7 + (int)pppppppuVar37 * 8;" (assignment_expression "puVar12 = puVar7 + (int)pppppppuVar37 * 8" (identifier "puVar12") (= "=") (binary_expression "puVar7 + (int)pppppppuVar37 * 8" (identifier "puVar7") (+ "+") (binary_expression "(int)pppppppuVar37 * 8" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "*puVar12 = (uint)local_e4;" (assignment_expression "*puVar12 = (uint)local_e4" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (cast_expression "(uint)local_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e4"))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);" (assignment_expression "pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)(ppppppuVar18 + local_124)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppuVar18 + local_124)" (( "(") (binary_expression "ppppppuVar18 + local_124" (identifier "ppppppuVar18") (+ "+") (identifier "local_124")) () ")")))) (; ";")) (expression_statement "puVar12[1] = local_e0;" (assignment_expression "puVar12[1] = local_e0" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_e0")) (; ";")) (expression_statement "puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);" (assignment_expression "puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc)" (identifier "puVar32") (= "=") (cast_expression "(undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + (int)pppppppuVar37 * 0xc)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "puVar12[2] = local_dc;" (assignment_expression "puVar12[2] = local_dc" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "puVar12[3] = local_d8;" (assignment_expression "puVar12[3] = local_d8" (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_d8")) (; ";")) (expression_statement "puVar12[4] = local_d4;" (assignment_expression "puVar12[4] = local_d4" (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_d4")) (; ";")) (expression_statement "puVar12[5] = local_d0;" (assignment_expression "puVar12[5] = local_d0" (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "puVar12[6] = local_cc;" (assignment_expression "puVar12[6] = local_cc" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_cc")) (; ";")) (expression_statement "puVar12[7] = local_c8;" (assignment_expression "puVar12[7] = local_c8" (subscript_expression "puVar12[7]" (identifier "puVar12") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "ppppppuVar35 = *pppppppuVar3;" (assignment_expression "ppppppuVar35 = *pppppppuVar3" (identifier "ppppppuVar35") (= "=") (pointer_expression "*pppppppuVar3" (* "*") (identifier "pppppppuVar3"))) (; ";")) (expression_statement "*puVar32 = 1;" (assignment_expression "*puVar32 = 1" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar32[1] = 1;" (assignment_expression "puVar32[1] = 1" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar12 = (uint *)(*pcVar8)(4);" (assignment_expression "puVar12 = (uint *)(*pcVar8)(4)" (identifier "puVar12") (= "=") (cast_expression "(uint *)(*pcVar8)(4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar8)(4)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "puVar32[2] = puVar12;" (assignment_expression "puVar32[2] = puVar12" (subscript_expression "puVar32[2]" (identifier "puVar32") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puVar12")) (; ";")) (if_statement "if (puVar12 != (uint *)0x0) {\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }" (if "if") (parenthesized_expression "(puVar12 != (uint *)0x0)" (( "(") (binary_expression "puVar12 != (uint *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              ppppppuVar18 = pppppppuVar20[2];\n              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);\n              *puVar12 = (uint)ppppppuVar35;\n              local_e4 = (uint *******)0x0;\n              local_e0 = 0;\n              local_dc = 0;\n              local_d8 = 0;\n              local_d4 = 0;\n              local_d0 = 0;\n              local_cc = 0;\n              local_c8 = 0;\n              goto LAB_00048c28;\n            }" ({ "{") (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" (identifier "ppppppuVar18") (= "=") (subscript_expression "pppppppuVar20[2]" (identifier "pppppppuVar20") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);" (assignment_expression "pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1)" (identifier "pppppppuVar37") (= "=") (cast_expression "(uint *******)((int)pppppppuVar37 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar37 + 1)" (( "(") (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar12 = (uint)ppppppuVar35;" (assignment_expression "*puVar12 = (uint)ppppppuVar35" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (cast_expression "(uint)ppppppuVar35" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar35"))) (; ";")) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" (identifier "local_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00048c28;" (goto "goto") (statement_identifier "LAB_00048c28") (; ";")) (} "}"))) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar32 = 0;" (assignment_expression "*puVar32 = 0" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (pppppppuVar37 == (uint *******)0x0) {\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }\n            else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" (if "if") (parenthesized_expression "(pppppppuVar37 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar37 == (uint *******)0x0" (identifier "pppppppuVar37") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" ({ "{") (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" (else "else") (compound_statement "{\nLAB_000493b8:\n              iVar36 = iVar25;\n              do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);\n              (**(code **)(puVar39 + 0x2d10c))(iVar25);\n            }" ({ "{") (labeled_statement "LAB_000493b8:\n              iVar36 = iVar25;" (statement_identifier "LAB_000493b8") (: ":") (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" (identifier "iVar36") (= "=") (identifier "iVar25")) (; ";"))) (do_statement "do {\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);" (do "do") (compound_statement "{\n                iVar4 = iVar36 + 0xc;\n                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n                iVar36 = iVar4;\n              }" ({ "{") (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" (identifier "iVar4") (= "=") (binary_expression "iVar36 + 0xc" (identifier "iVar36") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar36 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar36 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar36 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 8)" (( "(") (binary_expression "iVar36 + 8" (identifier "iVar36") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" (identifier "iVar36") (= "=") (identifier "iVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4)" (( "(") (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4" (cast_expression "(int)(local_118 + (int)pppppppuVar37)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_118 + (int)pppppppuVar37)" (( "(") (binary_expression "local_118 + (int)pppppppuVar37" (identifier "local_118") (+ "+") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37"))) () ")"))) (* "*") (number_literal "4")) (+ "+") (identifier "iVar25")) (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00048f5c;" (goto "goto") (statement_identifier "LAB_00048f5c") (; ";")) (} "}"))) (expression_statement "ppppppuVar18 = pppppppuVar20[2];" (assignment_expression "ppppppuVar18 = pppppppuVar20[2]" (identifier "ppppppuVar18") (= "=") (subscript_expression "pppppppuVar20[2]" (identifier "pppppppuVar20") ([ "[") (number_literal "2") (] "]"))) (; ";")) (goto_statement "goto LAB_00048c28;" (goto "goto") (statement_identifier "LAB_00048c28") (; ";")) (} "}"))) (if_statement "if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" (if "if") (parenthesized_expression "((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0))" (( "(") (binary_expression "(bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)" (parenthesized_expression "(bVar1 != 1)" (( "(") (binary_expression "bVar1 != 1" (identifier "bVar1") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(((uint)ppppppuVar35[1] & 0x200) == 0)" (( "(") (binary_expression "((uint)ppppppuVar35[1] & 0x200) == 0" (parenthesized_expression "((uint)ppppppuVar35[1] & 0x200)" (( "(") (binary_expression "(uint)ppppppuVar35[1] & 0x200" (cast_expression "(uint)ppppppuVar35[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppuVar35[1]" (identifier "ppppppuVar35") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          pppppppuVar34 = pppppppuVar17 + 0x18;\n          if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }\n          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;\n          goto LAB_000490bc;\n        }" ({ "{") (expression_statement "pppppppuVar34 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar34 = pppppppuVar17 + 0x18" (identifier "pppppppuVar34") (= "=") (binary_expression "pppppppuVar17 + 0x18" (identifier "pppppppuVar17") (+ "+") (number_literal "0x18"))) (; ";")) (if_statement "if ((int)pppppppuVar17[0x17] < 2) {\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }\n          else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" (if "if") (parenthesized_expression "((int)pppppppuVar17[0x17] < 2)" (( "(") (binary_expression "(int)pppppppuVar17[0x17] < 2" (cast_expression "(int)pppppppuVar17[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar17[0x17]" (identifier "pppppppuVar17") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);\n          }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppuVar15 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar15 = (uint *******)&local_e4" (identifier "pppppppuVar15") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (do_statement "do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (pppppppuVar14 != &local_c4);" (do "do") (compound_statement "{\n              pppppppuVar14 = pppppppuVar15 + 1;\n              ppppppuVar11 = *pppppppuVar34;\n              ppppppuVar26 = *pppppppuVar15;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            }" ({ "{") (expression_statement "pppppppuVar14 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar15 + 1" (identifier "pppppppuVar14") (= "=") (binary_expression "pppppppuVar15 + 1" (identifier "pppppppuVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar11 = *pppppppuVar34;" (assignment_expression "ppppppuVar11 = *pppppppuVar34" (identifier "ppppppuVar11") (= "=") (pointer_expression "*pppppppuVar34" (* "*") (identifier "pppppppuVar34"))) (; ";")) (expression_statement "ppppppuVar26 = *pppppppuVar15;" (assignment_expression "ppppppuVar26 = *pppppppuVar15" (identifier "ppppppuVar26") (= "=") (pointer_expression "*pppppppuVar15" (* "*") (identifier "pppppppuVar15"))) (; ";")) (expression_statement "pppppppuVar34 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar34 + 1" (identifier "pppppppuVar34") (= "=") (binary_expression "pppppppuVar34 + 1" (identifier "pppppppuVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);" (assignment_expression "*pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (pointer_expression "*pppppppuVar15" (* "*") (identifier "pppppppuVar15")) (= "=") (cast_expression "(uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (( "(") (binary_expression "~(uint)ppppppuVar11 & (uint)ppppppuVar26" (unary_expression "~(uint)ppppppuVar11" (~ "~") (cast_expression "(uint)ppppppuVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar11"))) (& "&") (cast_expression "(uint)ppppppuVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar26"))) () ")")))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);" (assignment_expression "pppppppuVar3 = (uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)\n                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26)" (( "(") (binary_expression "(uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26" (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")) (| "|") (binary_expression "~(uint)ppppppuVar11 & (uint)ppppppuVar26" (unary_expression "~(uint)ppppppuVar11" (~ "~") (cast_expression "(uint)ppppppuVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar11"))) (& "&") (cast_expression "(uint)ppppppuVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar26")))) () ")")))) (; ";")) (expression_statement "pppppppuVar15 = pppppppuVar14;" (assignment_expression "pppppppuVar15 = pppppppuVar14" (identifier "pppppppuVar15") (= "=") (identifier "pppppppuVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppuVar14 != &local_c4)" (( "(") (binary_expression "pppppppuVar14 != &local_c4" (identifier "pppppppuVar14") (!= "!=") (pointer_expression "&local_c4" (& "&") (identifier "local_c4"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" (else "else") (compound_statement "{\n            ppppppuVar11 = pppppppuVar17[0xf];\n            pppppppuVar3 = (uint *******)0x0;\n            pppppppuVar15 = (uint *******)&local_e4;\n            do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);\n          }" ({ "{") (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" (identifier "ppppppuVar11") (= "=") (subscript_expression "pppppppuVar17[0xf]" (identifier "pppppppuVar17") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppuVar15 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar15 = (uint *******)&local_e4" (identifier "pppppppuVar15") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (do_statement "do {\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            } while (&local_c4 != pppppppuVar14);" (do "do") (compound_statement "{\n              pppppppuVar14 = pppppppuVar15 + 1;\n              pppppuVar16 = *ppppppuVar11;\n              ppppppuVar26 = *pppppppuVar34;\n              ppppppuVar11 = ppppppuVar11 + 1;\n              pppppppuVar34 = pppppppuVar34 + 1;\n              ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);\n              *pppppppuVar15 = ppppppuVar26;\n              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);\n              pppppppuVar15 = pppppppuVar14;\n            }" ({ "{") (expression_statement "pppppppuVar14 = pppppppuVar15 + 1;" (assignment_expression "pppppppuVar14 = pppppppuVar15 + 1" (identifier "pppppppuVar14") (= "=") (binary_expression "pppppppuVar15 + 1" (identifier "pppppppuVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" (identifier "pppppuVar16") (= "=") (pointer_expression "*ppppppuVar11" (* "*") (identifier "ppppppuVar11"))) (; ";")) (expression_statement "ppppppuVar26 = *pppppppuVar34;" (assignment_expression "ppppppuVar26 = *pppppppuVar34" (identifier "ppppppuVar26") (= "=") (pointer_expression "*pppppppuVar34" (* "*") (identifier "pppppppuVar34"))) (; ";")) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" (identifier "ppppppuVar11") (= "=") (binary_expression "ppppppuVar11 + 1" (identifier "ppppppuVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar34 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar34 + 1" (identifier "pppppppuVar34") (= "=") (binary_expression "pppppppuVar34 + 1" (identifier "pppppppuVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);" (assignment_expression "ppppppuVar26 = (uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" (identifier "ppppppuVar26") (= "=") (cast_expression "(uint ******)\n                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15)" (( "(") (binary_expression "~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15" (unary_expression "~((uint)ppppppuVar26 & (uint)pppppuVar16)" (~ "~") (parenthesized_expression "((uint)ppppppuVar26 & (uint)pppppuVar16)" (( "(") (binary_expression "(uint)ppppppuVar26 & (uint)pppppuVar16" (cast_expression "(uint)ppppppuVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar26")) (& "&") (cast_expression "(uint)pppppuVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar16"))) () ")"))) (& "&") (binary_expression "(uint)*pppppppuVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar15"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar15 = ppppppuVar26;" (assignment_expression "*pppppppuVar15 = ppppppuVar26" (pointer_expression "*pppppppuVar15" (* "*") (identifier "pppppppuVar15")) (= "=") (identifier "ppppppuVar26")) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)pppppppuVar3 | (uint)ppppppuVar26)" (( "(") (binary_expression "(uint)pppppppuVar3 | (uint)ppppppuVar26" (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")) (| "|") (cast_expression "(uint)ppppppuVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar26"))) () ")")))) (; ";")) (expression_statement "pppppppuVar15 = pppppppuVar14;" (assignment_expression "pppppppuVar15 = pppppppuVar14" (identifier "pppppppuVar15") (= "=") (identifier "pppppppuVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_c4 != pppppppuVar14)" (( "(") (binary_expression "&local_c4 != pppppppuVar14" (pointer_expression "&local_c4" (& "&") (identifier "local_c4")) (!= "!=") (identifier "pppppppuVar14")) () ")")) (; ";")) (} "}")))) (if_statement "if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;" (if "if") (parenthesized_expression "(pppppppuVar3 == (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar3 == (uint *******)0x0" (identifier "pppppppuVar3") (== "==") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00048c28;" (goto "goto") (statement_identifier "LAB_00048c28") (; ";"))) (goto_statement "goto LAB_000490bc;" (goto "goto") (statement_identifier "LAB_000490bc") (; ";")) (} "}"))) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" (else "else") (compound_statement "{\n        local_e0 = 0;\n        local_e4 = (uint *******)0x0;\n        local_dc = 0;\n        local_d8 = 0;\n        local_d4 = 0;\n        local_d0 = 0;\n        local_cc = 0;\n        local_c8 = 0;\n        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;\n        local_e4 = (uint *******)0x400;\n        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;\nLAB_00049388:\n        local_e4 = (uint *******)0x0;\n      }" ({ "{") (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" (identifier "local_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;" (if "if") (parenthesized_expression "(((uint)pppppppuVar34 & 0x400) == 0)" (( "(") (binary_expression "((uint)pppppppuVar34 & 0x400) == 0" (parenthesized_expression "((uint)pppppppuVar34 & 0x400)" (( "(") (binary_expression "(uint)pppppppuVar34 & 0x400" (cast_expression "(uint)pppppppuVar34" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar34")) (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00048c28;" (goto "goto") (statement_identifier "LAB_00048c28") (; ";"))) (expression_statement "local_e4 = (uint *******)0x400;" (assignment_expression "local_e4 = (uint *******)0x400" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0x400" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x400"))) (; ";")) (if_statement "if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;" (if "if") (parenthesized_expression "((uVar5 & 0x80) == 0)" (( "(") (binary_expression "(uVar5 & 0x80) == 0" (parenthesized_expression "(uVar5 & 0x80)" (( "(") (binary_expression "uVar5 & 0x80" (identifier "uVar5") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00048fdc;" (goto "goto") (statement_identifier "LAB_00048fdc") (; ";"))) (labeled_statement "LAB_00049388:\n        local_e4 = (uint *******)0x0;" (statement_identifier "LAB_00049388") (: ":") (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")))) (expression_statement "local_e4 = (uint *******)0x0;" (assignment_expression "local_e4 = (uint *******)0x0" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" (identifier "local_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" (else "else") (compound_statement "{\n      if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }\n      if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }\n      pppppppuVar3 = (uint *******)0xffffffff;\n      if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }\n    }" ({ "{") (if_statement "if (bVar1 == 3) {\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }" (if "if") (parenthesized_expression "(bVar1 == 3)" (( "(") (binary_expression "bVar1 == 3" (identifier "bVar1") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        pppppuVar16 = *ppppppuVar35;\n        pppppppuVar34 = (uint *******)&local_e4;\n        do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);\n        goto LAB_00048fc0;\n      }" ({ "{") (expression_statement "pppppuVar16 = *ppppppuVar35;" (assignment_expression "pppppuVar16 = *ppppppuVar35" (identifier "pppppuVar16") (= "=") (pointer_expression "*ppppppuVar35" (* "*") (identifier "ppppppuVar35"))) (; ";")) (expression_statement "pppppppuVar34 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar34 = (uint *******)&local_e4" (identifier "pppppppuVar34") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (do_statement "do {\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        } while (&local_c4 != pppppppuVar15);" (do "do") (compound_statement "{\n          pppppppuVar15 = pppppppuVar34 + 1;\n          ppppuVar24 = *pppppuVar16;\n          pppppuVar16 = pppppuVar16 + 1;\n          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);\n          *pppppppuVar34 = (uint ******)pppppppuVar3;\n          pppppppuVar34 = pppppppuVar15;\n        }" ({ "{") (expression_statement "pppppppuVar15 = pppppppuVar34 + 1;" (assignment_expression "pppppppuVar15 = pppppppuVar34 + 1" (identifier "pppppppuVar15") (= "=") (binary_expression "pppppppuVar34 + 1" (identifier "pppppppuVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppuVar24 = *pppppuVar16;" (assignment_expression "ppppuVar24 = *pppppuVar16" (identifier "ppppuVar24") (= "=") (pointer_expression "*pppppuVar16" (* "*") (identifier "pppppuVar16"))) (; ";")) (expression_statement "pppppuVar16 = pppppuVar16 + 1;" (assignment_expression "pppppuVar16 = pppppuVar16 + 1" (identifier "pppppuVar16") (= "=") (binary_expression "pppppuVar16 + 1" (identifier "pppppuVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);" (assignment_expression "pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar34 | (uint)ppppuVar24)" (( "(") (binary_expression "(uint)*pppppppuVar34 | (uint)ppppuVar24" (binary_expression "(uint)*pppppppuVar34" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar34")) (| "|") (cast_expression "(uint)ppppuVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppuVar24"))) () ")")))) (; ";")) (expression_statement "*pppppppuVar34 = (uint ******)pppppppuVar3;" (assignment_expression "*pppppppuVar34 = (uint ******)pppppppuVar3" (pointer_expression "*pppppppuVar34" (* "*") (identifier "pppppppuVar34")) (= "=") (cast_expression "(uint ******)pppppppuVar3" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar3"))) (; ";")) (expression_statement "pppppppuVar34 = pppppppuVar15;" (assignment_expression "pppppppuVar34 = pppppppuVar15" (identifier "pppppppuVar34") (= "=") (identifier "pppppppuVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_c4 != pppppppuVar15)" (( "(") (binary_expression "&local_c4 != pppppppuVar15" (pointer_expression "&local_c4" (& "&") (identifier "local_c4")) (!= "!=") (identifier "pppppppuVar15")) () ")")) (; ";")) (goto_statement "goto LAB_00048fc0;" (goto "goto") (statement_identifier "LAB_00048fc0") (; ";")) (} "}"))) (if_statement "if (bVar1 == 5) {\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" (if "if") (parenthesized_expression "(bVar1 == 5)" (( "(") (binary_expression "bVar1 == 5" (identifier "bVar1") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }\n        ppppppuVar11 = pppppppuVar17[0x20];\njoined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }\n        pppppppuVar3 = local_e4;\n        if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }\n        goto LAB_00048fc0;\n      }" ({ "{") (if_statement "if ((int)pppppppuVar17[0x17] < 2) {\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }\n        else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" (if "if") (parenthesized_expression "((int)pppppppuVar17[0x17] < 2)" (( "(") (binary_expression "(int)pppppppuVar17[0x17] < 2" (cast_expression "(int)pppppppuVar17[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar17[0x17]" (identifier "pppppppuVar17") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          local_e4 = (uint *******)0xffffffff;\n          local_e0 = 0xffffffff;\n          local_dc = 0xffffffff;\n          local_d8 = 0xffffffff;\n          local_d4 = 0xffffffff;\n          local_d0 = 0xffffffff;\n          local_cc = 0xffffffff;\n          local_c8 = 0xffffffff;\n        }" ({ "{") (expression_statement "local_e4 = (uint *******)0xffffffff;" (assignment_expression "local_e4 = (uint *******)0xffffffff" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_e0 = 0xffffffff;" (assignment_expression "local_e0 = 0xffffffff" (identifier "local_e0") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_dc = 0xffffffff;" (assignment_expression "local_dc = 0xffffffff" (identifier "local_dc") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_d8 = 0xffffffff;" (assignment_expression "local_d8 = 0xffffffff" (identifier "local_d8") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_d4 = 0xffffffff;" (assignment_expression "local_d4 = 0xffffffff" (identifier "local_d4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_d0 = 0xffffffff;" (assignment_expression "local_d0 = 0xffffffff" (identifier "local_d0") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_cc = 0xffffffff;" (assignment_expression "local_cc = 0xffffffff" (identifier "local_cc") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_c8 = 0xffffffff;" (assignment_expression "local_c8 = 0xffffffff" (identifier "local_c8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else {\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" (else "else") (compound_statement "{\n          ppppppuVar11 = pppppppuVar17[0xf];\n          pppppppuVar3 = (uint *******)&local_e4;\n          do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);\n        }" ({ "{") (expression_statement "ppppppuVar11 = pppppppuVar17[0xf];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0xf]" (identifier "ppppppuVar11") (= "=") (subscript_expression "pppppppuVar17[0xf]" (identifier "pppppppuVar17") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)&local_e4;" (assignment_expression "pppppppuVar3 = (uint *******)&local_e4" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)&local_e4" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")))) (; ";")) (do_statement "do {\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          } while (&local_c4 != pppppppuVar34);" (do "do") (compound_statement "{\n            pppppppuVar34 = pppppppuVar3 + 1;\n            pppppuVar16 = *ppppppuVar11;\n            ppppppuVar11 = ppppppuVar11 + 1;\n            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);\n            pppppppuVar3 = pppppppuVar34;\n          }" ({ "{") (expression_statement "pppppppuVar34 = pppppppuVar3 + 1;" (assignment_expression "pppppppuVar34 = pppppppuVar3 + 1" (identifier "pppppppuVar34") (= "=") (binary_expression "pppppppuVar3 + 1" (identifier "pppppppuVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppuVar16 = *ppppppuVar11;" (assignment_expression "pppppuVar16 = *ppppppuVar11" (identifier "pppppuVar16") (= "=") (pointer_expression "*ppppppuVar11" (* "*") (identifier "ppppppuVar11"))) (; ";")) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" (identifier "ppppppuVar11") (= "=") (binary_expression "ppppppuVar11 + 1" (identifier "ppppppuVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);" (assignment_expression "*pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16)" (pointer_expression "*pppppppuVar3" (* "*") (identifier "pppppppuVar3")) (= "=") (cast_expression "(uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((uint)*pppppppuVar3 | (uint)pppppuVar16)" (( "(") (binary_expression "(uint)*pppppppuVar3 | (uint)pppppuVar16" (binary_expression "(uint)*pppppppuVar3" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar3")) (| "|") (cast_expression "(uint)pppppuVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar16"))) () ")")))) (; ";")) (expression_statement "pppppppuVar3 = pppppppuVar34;" (assignment_expression "pppppppuVar3 = pppppppuVar34" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar34")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_c4 != pppppppuVar34)" (( "(") (binary_expression "&local_c4 != pppppppuVar34" (pointer_expression "&local_c4" (& "&") (identifier "local_c4")) (!= "!=") (identifier "pppppppuVar34")) () ")")) (; ";")) (} "}")))) (expression_statement "ppppppuVar11 = pppppppuVar17[0x20];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x20]" (identifier "ppppppuVar11") (= "=") (subscript_expression "pppppppuVar17[0x20]" (identifier "pppppppuVar17") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (labeled_statement "joined_r0x00049318:\n        if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" (statement_identifier "joined_r0x00049318") (: ":") (if_statement "if (((uint)ppppppuVar11 & 0x40) == 0) {\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" (if "if") (parenthesized_expression "(((uint)ppppppuVar11 & 0x40) == 0)" (( "(") (binary_expression "((uint)ppppppuVar11 & 0x40) == 0" (parenthesized_expression "((uint)ppppppuVar11 & 0x40)" (( "(") (binary_expression "(uint)ppppppuVar11 & 0x40" (cast_expression "(uint)ppppppuVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar11")) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);\n        }" ({ "{") (expression_statement "local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);" (assignment_expression "local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff)" (identifier "local_e4") (= "=") (cast_expression "(uint *******)((uint)local_e4 & 0xfffffbff)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)local_e4 & 0xfffffbff)" (( "(") (binary_expression "(uint)local_e4 & 0xfffffbff" (cast_expression "(uint)local_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e4")) (& "&") (number_literal "0xfffffbff")) () ")")))) (; ";")) (} "}")))) (expression_statement "pppppppuVar3 = local_e4;" (assignment_expression "pppppppuVar3 = local_e4" (identifier "pppppppuVar3") (= "=") (identifier "local_e4")) (; ";")) (if_statement "if (((uint)ppppppuVar11 & 0x80) != 0) {\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }" (if "if") (parenthesized_expression "(((uint)ppppppuVar11 & 0x80) != 0)" (( "(") (binary_expression "((uint)ppppppuVar11 & 0x80) != 0" (parenthesized_expression "((uint)ppppppuVar11 & 0x80)" (( "(") (binary_expression "(uint)ppppppuVar11 & 0x80" (cast_expression "(uint)ppppppuVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppuVar11")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppuVar3 = (uint *******)&SUB_fffffffe;\n          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);\n        }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)&SUB_fffffffe;" (assignment_expression "pppppppuVar3 = (uint *******)&SUB_fffffffe" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)&SUB_fffffffe" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&SUB_fffffffe" (& "&") (identifier "SUB_fffffffe")))) (; ";")) (expression_statement "local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);" (assignment_expression "local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe)" (identifier "local_e4") (= "=") (cast_expression "(uint *******)((uint)local_e4 & 0xfffffffe)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)local_e4 & 0xfffffffe)" (( "(") (binary_expression "(uint)local_e4 & 0xfffffffe" (cast_expression "(uint)local_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e4")) (& "&") (number_literal "0xfffffffe")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_00048fc0;" (goto "goto") (statement_identifier "LAB_00048fc0") (; ";")) (} "}"))) (expression_statement "pppppppuVar3 = (uint *******)0xffffffff;" (assignment_expression "pppppppuVar3 = (uint *******)0xffffffff" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (bVar1 == 7) {\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" (if "if") (parenthesized_expression "(bVar1 == 7)" (( "(") (binary_expression "bVar1 == 7" (identifier "bVar1") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n        ppppppuVar11 = pppppppuVar17[0x20];\n        local_e4 = (uint *******)0xffffffff;\n        local_e0 = 0xffffffff;\n        local_dc = 0xffffffff;\n        local_d8 = 0xffffffff;\n        goto joined_r0x00049318;\n      }" ({ "{") (expression_statement "ppppppuVar11 = pppppppuVar17[0x20];" (assignment_expression "ppppppuVar11 = pppppppuVar17[0x20]" (identifier "ppppppuVar11") (= "=") (subscript_expression "pppppppuVar17[0x20]" (identifier "pppppppuVar17") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "local_e4 = (uint *******)0xffffffff;" (assignment_expression "local_e4 = (uint *******)0xffffffff" (identifier "local_e4") (= "=") (cast_expression "(uint *******)0xffffffff" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_e0 = 0xffffffff;" (assignment_expression "local_e0 = 0xffffffff" (identifier "local_e0") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_dc = 0xffffffff;" (assignment_expression "local_dc = 0xffffffff" (identifier "local_dc") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_d8 = 0xffffffff;" (assignment_expression "local_d8 = 0xffffffff" (identifier "local_d8") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto joined_r0x00049318;" (goto "goto") (statement_identifier "joined_r0x00049318") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00048c28:\n    local_124 = local_124 + 1;" (statement_identifier "LAB_00048c28") (: ":") (expression_statement "local_124 = local_124 + 1;" (assignment_expression "local_124 = local_124 + 1" (identifier "local_124") (= "=") (binary_expression "local_124 + 1" (identifier "local_124") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;" (if "if") (parenthesized_expression "((int)ppppppuVar18 <= local_124)" (( "(") (binary_expression "(int)ppppppuVar18 <= local_124" (cast_expression "(int)ppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar18")) (<= "<=") (identifier "local_124")) () ")")) (goto_statement "goto code_r0x00048c3c;" (goto "goto") (statement_identifier "code_r0x00048c3c") (; ";"))) (goto_statement "goto LAB_00048bd4;" (goto "goto") (statement_identifier "LAB_00048bd4") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (labeled_statement "LAB_00049784:\n  pppppppuVar3 = (uint *******)0x100;" (statement_identifier "LAB_00049784") (: ":") (expression_statement "pppppppuVar3 = (uint *******)0x100;" (assignment_expression "pppppppuVar3 = (uint *******)0x100" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x100" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x100"))) (; ";"))) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" (identifier "ppppppuVar18") (= "=") (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2ced8)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2ced8)" (* "*") (cast_expression "(code **)(puVar39 + 0x2ced8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2ced8)" (( "(") (binary_expression "puVar39 + 0x2ced8" (identifier "puVar39") (+ "+") (number_literal "0x2ced8")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "pppppppuVar20[0xb] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xb] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xb]" (identifier "pppppppuVar20") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppuVar18")) (; ";")) (expression_statement "uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);" (assignment_expression "uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0)" (identifier "uVar5") (= "=") (call_expression "(uint)(ppppppuVar18 != (uint ******)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ppppppuVar18 != (uint ******)0x0)" (( "(") (binary_expression "ppppppuVar18 != (uint ******)0x0" (identifier "ppppppuVar18") (!= "!=") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")))) (; ";")) (labeled_statement "LAB_00048f60:\n  if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }" (statement_identifier "LAB_00048f60") (: ":") (if_statement "if (local_84 == (int *)*piVar6) {\n    return uVar5;\n  }" (if "if") (parenthesized_expression "(local_84 == (int *)*piVar6)" (( "(") (binary_expression "local_84 == (int *)*piVar6" (identifier "local_84") (== "==") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) () ")")) (compound_statement "{\n    return uVar5;\n  }" ({ "{") (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))) (expression_statement "piVar6 = local_84;" (assignment_expression "piVar6 = local_84" (identifier "piVar6") (= "=") (identifier "local_84")) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d0b8))();" (call_expression "(**(code **)(puVar39 + 0x2d0b8))()" (parenthesized_expression "(**(code **)(puVar39 + 0x2d0b8))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d0b8)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d0b8)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d0b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d0b8)" (( "(") (binary_expression "puVar39 + 0x2d0b8" (identifier "puVar39") (+ "+") (number_literal "0x2d0b8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)(pppppppuVar3 + 6) == '\x10') {\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(char *)(pppppppuVar3 + 6) == '\x10')" (( "(") (binary_expression "*(char *)(pppppppuVar3 + 6) == '\x10'" (pointer_expression "*(char *)(pppppppuVar3 + 6)" (* "*") (cast_expression "(char *)(pppppppuVar3 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppuVar3 + 6)" (( "(") (binary_expression "pppppppuVar3 + 6" (identifier "pppppppuVar3") (+ "+") (number_literal "6")) () ")")))) (== "==") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) () ")")) (compound_statement "{\n    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];\n    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];\n    pppppppuVar3[7] = ppppppuVar18;\n    return 0;\n  }" ({ "{") (expression_statement "ppppppuVar18 = (uint ******)pppppppuVar3[1][7];" (assignment_expression "ppppppuVar18 = (uint ******)pppppppuVar3[1][7]" (identifier "ppppppuVar18") (= "=") (cast_expression "(uint ******)pppppppuVar3[1][7]" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "pppppppuVar3[1][7]" (subscript_expression "pppppppuVar3[1]" (identifier "pppppppuVar3") ([ "[") (number_literal "1") (] "]")) ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];" (assignment_expression "pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3]" (subscript_expression "pppppppuVar3[3]" (identifier "pppppppuVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint ******)pppppppuVar3[1][3]" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "pppppppuVar3[1][3]" (subscript_expression "pppppppuVar3[1]" (identifier "pppppppuVar3") ([ "[") (number_literal "1") (] "]")) ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "pppppppuVar3[7] = ppppppuVar18;" (assignment_expression "pppppppuVar3[7] = ppppppuVar18" (subscript_expression "pppppppuVar3[7]" (identifier "pppppppuVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppuVar18")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pppppppuVar3[3] = (uint ******)pppppppuVar3;" (assignment_expression "pppppppuVar3[3] = (uint ******)pppppppuVar3" (subscript_expression "pppppppuVar3[3]" (identifier "pppppppuVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint ******)pppppppuVar3" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppuVar3"))) (; ";")) (expression_statement "ppppppuVar18 = (uint ******)FUN_000445c0();" (assignment_expression "ppppppuVar18 = (uint ******)FUN_000445c0()" (identifier "ppppppuVar18") (= "=") (cast_expression "(uint ******)FUN_000445c0()" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_000445c0()" (identifier "FUN_000445c0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppuVar3[7] = ppppppuVar18;" (assignment_expression "pppppppuVar3[7] = ppppppuVar18" (subscript_expression "pppppppuVar3[7]" (identifier "pppppppuVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppuVar18")) (; ";")) (if_statement "if (ppppppuVar18 == (uint ******)0xffffffff) {\n    uVar5 = 0xc;\n  }\n  else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" (if "if") (parenthesized_expression "(ppppppuVar18 == (uint ******)0xffffffff)" (( "(") (binary_expression "ppppppuVar18 == (uint ******)0xffffffff" (identifier "ppppppuVar18") (== "==") (cast_expression "(uint ******)0xffffffff" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n    uVar5 = 0xc;\n  }" ({ "{") (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" (identifier "uVar5") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else {\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" (else "else") (compound_statement "{\n    if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }\n    uVar5 = 0;\n  }" ({ "{") (if_statement "if (*(char *)(pppppppuVar3 + 6) == '\f') {\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(pppppppuVar3 + 6) == '\f')" (( "(") (binary_expression "*(char *)(pppppppuVar3 + 6) == '\f'" (pointer_expression "*(char *)(pppppppuVar3 + 6)" (* "*") (cast_expression "(char *)(pppppppuVar3 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppuVar3 + 6)" (( "(") (binary_expression "pppppppuVar3 + 6" (identifier "pppppppuVar3") (+ "+") (number_literal "6")) () ")")))) (== "==") (char_literal "'\f'" (' "'") (escape_sequence "\f") (' "'"))) () ")")) (compound_statement "{\n      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;\n      *(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;\n      return 0;\n    }" ({ "{") (expression_statement "iVar25 = *piVar6 + (int)ppppppuVar18 * 8;" (assignment_expression "iVar25 = *piVar6 + (int)ppppppuVar18 * 8" (identifier "iVar25") (= "=") (binary_expression "*piVar6 + (int)ppppppuVar18 * 8" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (binary_expression "(int)ppppppuVar18 * 8" (cast_expression "(int)ppppppuVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppuVar18")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;" (assignment_expression "*(uint *)(iVar25 + 4) =\n           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (pointer_expression "*(uint *)(iVar25 + 4)" (* "*") (cast_expression "(uint *)(iVar25 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (binary_expression "*(uint *)(iVar25 + 4) & 0xff003fff" (pointer_expression "*(uint *)(iVar25 + 4)" (* "*") (cast_expression "(uint *)(iVar25 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xff003fff")) (| "|") (binary_expression "((uint)pppppppuVar3[5] & 0x3ff) << 0xe" (parenthesized_expression "((uint)pppppppuVar3[5] & 0x3ff)" (( "(") (binary_expression "(uint)pppppppuVar3[5] & 0x3ff" (cast_expression "(uint)pppppppuVar3[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppuVar3[5]" (identifier "pppppppuVar3") ([ "[") (number_literal "5") (] "]"))) (& "&") (number_literal "0x3ff")) () ")")) (<< "<<") (number_literal "0xe")))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (labeled_statement "code_r0x00048c3c:\n  if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" (statement_identifier "code_r0x00048c3c") (: ":") (if_statement "if (0 < (int)pppppppuVar37) {\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" (if "if") (parenthesized_expression "(0 < (int)pppppppuVar37)" (( "(") (binary_expression "0 < (int)pppppppuVar37" (number_literal "0") (< "<") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37"))) () ")")) (compound_statement "{\n    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);\n    local_ec = 0;\n    iVar4 = (int)local_f0 * 4;\n    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);\n    local_e8 = iVar36;\n    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }\nLAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);\n    iVar36 = iVar25;\n    do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);\n    (**(code **)(puVar39 + 0x2d10c))(iVar25);\nLAB_00048f5c:\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" ({ "{") (expression_statement "local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);" (assignment_expression "local_f0 = (undefined1 *)((int)pppppppuVar37 + 1)" (identifier "local_f0") (= "=") (cast_expression "(undefined1 *)((int)pppppppuVar37 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppuVar37 + 1)" (( "(") (binary_expression "(int)pppppppuVar37 + 1" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = (int)local_f0 * 4;" (assignment_expression "iVar4 = (int)local_f0 * 4" (identifier "iVar4") (= "=") (binary_expression "(int)local_f0 * 4" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);" (assignment_expression "iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4)" (identifier "iVar36") (= "=") (call_expression "(**(code **)(puVar39 + 0x2d03c))(iVar4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d03c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d03c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d03c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d03c)" (( "(") (binary_expression "puVar39 + 0x2d03c" (identifier "puVar39") (+ "+") (number_literal "0x2d03c")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (expression_statement "local_e8 = iVar36;" (assignment_expression "local_e8 = iVar36" (identifier "local_e8") (= "=") (identifier "iVar36")) (; ";")) (if_statement "if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {\n      local_118 = (int)pppppppuVar37 << 1;\n    }\n    else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" (if "if") (parenthesized_expression "((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37))" (( "(") (binary_expression "(iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)" (parenthesized_expression "(iVar36 == 0)" (( "(") (binary_expression "iVar36 == 0" (identifier "iVar36") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_f4 = 0, 0x155551aa < (int)pppppppuVar37)" (( "(") (comma_expression "local_f4 = 0, 0x155551aa < (int)pppppppuVar37" (assignment_expression "local_f4 = 0" (identifier "local_f4") (= "=") (number_literal "0")) (, ",") (binary_expression "0x155551aa < (int)pppppppuVar37" (number_literal "0x155551aa") (< "<") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")))) () ")"))) () ")")) (compound_statement "{\n      local_118 = (int)pppppppuVar37 << 1;\n    }" ({ "{") (expression_statement "local_118 = (int)pppppppuVar37 << 1;" (assignment_expression "local_118 = (int)pppppppuVar37 << 1" (identifier "local_118") (= "=") (binary_expression "(int)pppppppuVar37 << 1" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (<< "<<") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" (else "else") (compound_statement "{\n      local_118 = (int)pppppppuVar37 * 2;\n      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);\n      if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }\n    }" ({ "{") (expression_statement "local_118 = (int)pppppppuVar37 * 2;" (assignment_expression "local_118 = (int)pppppppuVar37 * 2" (identifier "local_118") (= "=") (binary_expression "(int)pppppppuVar37 * 2" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);" (assignment_expression "puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" (identifier "puVar32") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d03c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d03c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d03c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d03c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d03c)" (( "(") (binary_expression "puVar39 + 0x2d03c" (identifier "puVar39") (+ "+") (number_literal "0x2d03c")) () ")"))))) () ")")) (argument_list "((int)pppppppuVar37 * 0xc)" (( "(") (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (puVar32 != (undefined4 *)0x0) {\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }" (if "if") (parenthesized_expression "(puVar32 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar32 != (undefined4 *)0x0" (identifier "puVar32") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar4 = iVar4 + -4;\n        ppiVar30 = &local_a4;\n        iVar28 = 0;\n        puVar13 = puVar32 + (int)pppppppuVar37;\n        local_a4 = (int *)0x0;\n        piVar33 = (int *)(iVar25 + 4);\n        local_a0 = 0;\n        local_9c = 0;\n        iVar36 = *(int *)(puVar39 + 0x2ce30);\n        local_98 = 0;\n        bVar2 = false;\n        local_94 = 0;\n        local_90 = 0;\n        local_8c = 0;\n        local_88 = 0;\n        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);\n        do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);\n        if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }\n        pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }\n        (*pcVar8)(puVar32);\n        (**(code **)(puVar39 + 0x2d10c))(local_e8);\n        iVar36 = iVar25;\n        do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);\n        (**(code **)(puVar39 + 0x2d10c))(iVar25);\n        uVar5 = 1;\n        goto LAB_00048f60;\n      }" ({ "{") (expression_statement "iVar4 = iVar4 + -4;" (assignment_expression "iVar4 = iVar4 + -4" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -4" (identifier "iVar4") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "ppiVar30 = &local_a4;" (assignment_expression "ppiVar30 = &local_a4" (identifier "ppiVar30") (= "=") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) (; ";")) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" (identifier "iVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13 = puVar32 + (int)pppppppuVar37;" (assignment_expression "puVar13 = puVar32 + (int)pppppppuVar37" (identifier "puVar13") (= "=") (binary_expression "puVar32 + (int)pppppppuVar37" (identifier "puVar32") (+ "+") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")))) (; ";")) (expression_statement "local_a4 = (int *)0x0;" (assignment_expression "local_a4 = (int *)0x0" (identifier "local_a4") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar33 = (int *)(iVar25 + 4);" (assignment_expression "piVar33 = (int *)(iVar25 + 4)" (identifier "piVar33") (= "=") (cast_expression "(int *)(iVar25 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" (identifier "local_9c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar36 = *(int *)(puVar39 + 0x2ce30);" (assignment_expression "iVar36 = *(int *)(puVar39 + 0x2ce30)" (identifier "iVar36") (= "=") (pointer_expression "*(int *)(puVar39 + 0x2ce30)" (* "*") (cast_expression "(int *)(puVar39 + 0x2ce30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar39 + 0x2ce30)" (( "(") (binary_expression "puVar39 + 0x2ce30" (identifier "puVar39") (+ "+") (number_literal "0x2ce30")) () ")"))))) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);" (assignment_expression "pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar39 + 0x2ce30) + 0x6cac)" (( "(") (binary_expression "*(int *)(puVar39 + 0x2ce30) + 0x6cac" (pointer_expression "*(int *)(puVar39 + 0x2ce30)" (* "*") (cast_expression "(int *)(puVar39 + 0x2ce30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar39 + 0x2ce30)" (( "(") (binary_expression "puVar39 + 0x2ce30" (identifier "puVar39") (+ "+") (number_literal "0x2ce30")) () ")")))) (+ "+") (number_literal "0x6cac")) () ")")))) (; ";")) (do_statement "do {\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        } while (iVar4 != iVar28);" (do "do") (compound_statement "{\n          iVar31 = *piVar33;\n          iVar29 = 0;\n          local_ec = 0;\n          if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }\n          pppppppuVar3 = pppppppuVar17;\n          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);\n          *(int *)((int)puVar32 + iVar28) = iVar31;\n          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;\n          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }\n          iVar31 = iVar28 * 8 + iVar25;\n          ppiVar9 = ppiVar30;\n          do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);\n          iVar28 = iVar28 + 4;\n          piVar33 = piVar33 + 3;\n        }" ({ "{") (expression_statement "iVar31 = *piVar33;" (assignment_expression "iVar31 = *piVar33" (identifier "iVar31") (= "=") (pointer_expression "*piVar33" (* "*") (identifier "piVar33"))) (; ";")) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" (identifier "iVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar31) {\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }" (if "if") (parenthesized_expression "(0 < iVar31)" (( "(") (binary_expression "0 < iVar31" (number_literal "0") (< "<") (identifier "iVar31")) () ")")) (compound_statement "{\n            do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);\n          }" ({ "{") (do_statement "do {\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            } while (iVar29 < iVar31);" (do "do") (compound_statement "{\n              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }\n              iVar29 = iVar29 + 1;\n            }" ({ "{") (if_statement "if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }" (if "if") (parenthesized_expression "(pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff)" (( "(") (binary_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff" (subscript_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" (subscript_expression "pppppppuVar17[3]" (identifier "pppppppuVar17") ([ "[") (number_literal "3") (] "]")) ([ "[") (pointer_expression "*(int *)(piVar33[1] + iVar29 * 4)" (* "*") (cast_expression "(int *)(piVar33[1] + iVar29 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar33[1] + iVar29 * 4)" (( "(") (binary_expression "piVar33[1] + iVar29 * 4" (subscript_expression "piVar33[1]" (identifier "piVar33") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "iVar29 * 4" (identifier "iVar29") (* "*") (number_literal "4"))) () ")")))) (] "]")) (!= "!=") (cast_expression "(uint *****)0xffffffff" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);\n                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);\n                if (local_f4 != 0) goto LAB_000495c0;\n                iVar31 = *piVar33;\n              }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);" (assignment_expression "pppppppuVar3 = (uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)\n                               (pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3)" (( "(") (binary_expression "pppppppuVar17[6] +\n                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3" (subscript_expression "pppppppuVar17[6]" (identifier "pppppppuVar17") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "(int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3" (cast_expression "(int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)]" (subscript_expression "pppppppuVar17[3]" (identifier "pppppppuVar17") ([ "[") (number_literal "3") (] "]")) ([ "[") (pointer_expression "*(int *)(piVar33[1] + iVar29 * 4)" (* "*") (cast_expression "(int *)(piVar33[1] + iVar29 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar33[1] + iVar29 * 4)" (( "(") (binary_expression "piVar33[1] + iVar29 * 4" (subscript_expression "piVar33[1]" (identifier "piVar33") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "iVar29 * 4" (identifier "iVar29") (* "*") (number_literal "4"))) () ")")))) (] "]"))) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);" (assignment_expression "local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0)" (identifier "local_f4") (= "=") (call_expression "(*(code *)(iVar36 + 0x59ac))(&local_f0)" (parenthesized_expression "(*(code *)(iVar36 + 0x59ac))" (( "(") (pointer_expression "*(code *)(iVar36 + 0x59ac)" (* "*") (cast_expression "(code *)(iVar36 + 0x59ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0x59ac)" (( "(") (binary_expression "iVar36 + 0x59ac" (identifier "iVar36") (+ "+") (number_literal "0x59ac")) () ")")))) () ")")) (argument_list "(&local_f0)" (( "(") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) () ")")))) (; ";")) (if_statement "if (local_f4 != 0) goto LAB_000495c0;" (if "if") (parenthesized_expression "(local_f4 != 0)" (( "(") (binary_expression "local_f4 != 0" (identifier "local_f4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000495c0;" (goto "goto") (statement_identifier "LAB_000495c0") (; ";"))) (expression_statement "iVar31 = *piVar33;" (assignment_expression "iVar31 = *piVar33" (identifier "iVar31") (= "=") (pointer_expression "*piVar33" (* "*") (identifier "piVar33"))) (; ";")) (} "}"))) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" (identifier "iVar29") (= "=") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar29 < iVar31)" (( "(") (binary_expression "iVar29 < iVar31" (identifier "iVar29") (< "<") (identifier "iVar31")) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar17")) (; ";")) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0)" (identifier "iVar31") (= "=") (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_f4,pppppppuVar17,&local_f0,0)" (( "(") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) (, ",") (identifier "pppppppuVar17") (, ",") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar32 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar32 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar32 + iVar28)" (* "*") (cast_expression "(int *)((int)puVar32 + iVar28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + iVar28)" (( "(") (binary_expression "(int)puVar32 + iVar28" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (identifier "iVar28")) () ")")))) (= "=") (identifier "iVar31")) (; ";")) (if_statement "if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n          goto LAB_000495c4;" (if "if") (parenthesized_expression "((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))" (( "(") (binary_expression "(iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (( "(") (comma_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) (, ",") (binary_expression "local_f4 != 0" (identifier "local_f4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_000495c4;" (goto "goto") (statement_identifier "LAB_000495c4") (; ";"))) (if_statement "if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }\n          else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar31 + 0x34) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar31 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar31 + 0x34) & 1)" (( "(") (binary_expression "*(byte *)(iVar31 + 0x34) & 1" (pointer_expression "*(byte *)(iVar31 + 0x34)" (* "*") (cast_expression "(byte *)(iVar31 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x34)" (( "(") (binary_expression "iVar31 + 0x34" (identifier "iVar31") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n          }" ({ "{") (expression_statement "*(int *)((int)puVar13 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28)" (* "*") (cast_expression "(int *)((int)puVar13 + iVar28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + iVar28)" (( "(") (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "iVar28")) () ")")))) (= "=") (identifier "iVar31")) (; ";")) (expression_statement "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28 + iVar4)" (* "*") (cast_expression "(int *)((int)puVar13 + iVar28 + iVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + iVar28 + iVar4)" (( "(") (binary_expression "(int)puVar13 + iVar28 + iVar4" (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "iVar28")) (+ "+") (identifier "iVar4")) () ")")))) (= "=") (identifier "iVar31")) (; ";")) (} "}")) (else_clause "else {\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" (else "else") (compound_statement "{\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);\n            *(int *)((int)puVar13 + iVar28) = iVar31;\n            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;\n            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }\n            pppppppuVar3 = pppppppuVar17;\n            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);\n            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;\n            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;\n          }" ({ "{") (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar17")) (; ";")) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1)" (identifier "iVar31") (= "=") (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_f4,pppppppuVar17,&local_f0,1)" (( "(") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) (, ",") (identifier "pppppppuVar17") (, ",") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar13 + iVar28) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28)" (* "*") (cast_expression "(int *)((int)puVar13 + iVar28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + iVar28)" (( "(") (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "iVar28")) () ")")))) (= "=") (identifier "iVar31")) (; ";")) (if_statement "if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))\n            goto LAB_000495c4;" (if "if") (parenthesized_expression "((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))" (( "(") (binary_expression "(iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0)" (( "(") (comma_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) (, ",") (binary_expression "local_f4 != 0" (identifier "local_f4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_000495c4;" (goto "goto") (statement_identifier "LAB_000495c4") (; ";"))) (if_statement "if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {\n              bVar2 = true;\n            }" (if "if") (parenthesized_expression "((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17]))" (( "(") (binary_expression "(iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])" (parenthesized_expression "(iVar31 != *(int *)((int)puVar32 + iVar28))" (( "(") (binary_expression "iVar31 != *(int *)((int)puVar32 + iVar28)" (identifier "iVar31") (!= "!=") (pointer_expression "*(int *)((int)puVar32 + iVar28)" (* "*") (cast_expression "(int *)((int)puVar32 + iVar28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar32 + iVar28)" (( "(") (binary_expression "(int)puVar32 + iVar28" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (identifier "iVar28")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(1 < (int)pppppppuVar17[0x17])" (( "(") (binary_expression "1 < (int)pppppppuVar17[0x17]" (number_literal "1") (< "<") (cast_expression "(int)pppppppuVar17[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar17[0x17]" (identifier "pppppppuVar17") ([ "[") (number_literal "0x17") (] "]")))) () ")"))) () ")")) (compound_statement "{\n              bVar2 = true;\n            }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "pppppppuVar3 = pppppppuVar17;" (assignment_expression "pppppppuVar3 = pppppppuVar17" (identifier "pppppppuVar3") (= "=") (identifier "pppppppuVar17")) (; ";")) (expression_statement "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);" (assignment_expression "iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2)" (identifier "iVar31") (= "=") (call_expression "(*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_f4,pppppppuVar17,&local_f0,2)" (( "(") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) (, ",") (identifier "pppppppuVar17") (, ",") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;" (assignment_expression "*(int *)((int)puVar13 + iVar28 + iVar4) = iVar31" (pointer_expression "*(int *)((int)puVar13 + iVar28 + iVar4)" (* "*") (cast_expression "(int *)((int)puVar13 + iVar28 + iVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + iVar28 + iVar4)" (( "(") (binary_expression "(int)puVar13 + iVar28 + iVar4" (binary_expression "(int)puVar13 + iVar28" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "iVar28")) (+ "+") (identifier "iVar4")) () ")")))) (= "=") (identifier "iVar31")) (; ";")) (if_statement "if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;" (if "if") (parenthesized_expression "((iVar31 == 0) && (local_f4 != 0))" (( "(") (binary_expression "(iVar31 == 0) && (local_f4 != 0)" (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_f4 != 0)" (( "(") (binary_expression "local_f4 != 0" (identifier "local_f4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000495c0;" (goto "goto") (statement_identifier "LAB_000495c0") (; ";"))) (} "}")))) (expression_statement "iVar31 = iVar28 * 8 + iVar25;" (assignment_expression "iVar31 = iVar28 * 8 + iVar25" (identifier "iVar31") (= "=") (binary_expression "iVar28 * 8 + iVar25" (binary_expression "iVar28 * 8" (identifier "iVar28") (* "*") (number_literal "8")) (+ "+") (identifier "iVar25"))) (; ";")) (expression_statement "ppiVar9 = ppiVar30;" (assignment_expression "ppiVar9 = ppiVar30" (identifier "ppiVar9") (= "=") (identifier "ppiVar30")) (; ";")) (do_statement "do {\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          } while (&local_84 != ppiVar10);" (do "do") (compound_statement "{\n            ppiVar10 = ppiVar9 + 1;\n            puVar12 = (uint *)(iVar31 + 0xc00);\n            iVar31 = iVar31 + 4;\n            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);\n            ppiVar9 = ppiVar10;\n          }" ({ "{") (expression_statement "ppiVar10 = ppiVar9 + 1;" (assignment_expression "ppiVar10 = ppiVar9 + 1" (identifier "ppiVar10") (= "=") (binary_expression "ppiVar9 + 1" (identifier "ppiVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar12 = (uint *)(iVar31 + 0xc00);" (assignment_expression "puVar12 = (uint *)(iVar31 + 0xc00)" (identifier "puVar12") (= "=") (cast_expression "(uint *)(iVar31 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0xc00)" (( "(") (binary_expression "iVar31 + 0xc00" (identifier "iVar31") (+ "+") (number_literal "0xc00")) () ")")))) (; ";")) (expression_statement "iVar31 = iVar31 + 4;" (assignment_expression "iVar31 = iVar31 + 4" (identifier "iVar31") (= "=") (binary_expression "iVar31 + 4" (identifier "iVar31") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);" (assignment_expression "*ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12)" (pointer_expression "*ppiVar9" (* "*") (identifier "ppiVar9")) (= "=") (cast_expression "(int *)((uint)*ppiVar9 | *puVar12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)*ppiVar9 | *puVar12)" (( "(") (binary_expression "(uint)*ppiVar9 | *puVar12" (binary_expression "(uint)*ppiVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppiVar9")) (| "|") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) () ")")))) (; ";")) (expression_statement "ppiVar9 = ppiVar10;" (assignment_expression "ppiVar9 = ppiVar10" (identifier "ppiVar9") (= "=") (identifier "ppiVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_84 != ppiVar10)" (( "(") (binary_expression "&local_84 != ppiVar10" (pointer_expression "&local_84" (& "&") (identifier "local_84")) (!= "!=") (identifier "ppiVar10")) () ")")) (; ";")) (expression_statement "iVar28 = iVar28 + 4;" (assignment_expression "iVar28 = iVar28 + 4" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 4" (identifier "iVar28") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar33 = piVar33 + 3;" (assignment_expression "piVar33 = piVar33 + 3" (identifier "piVar33") (= "=") (binary_expression "piVar33 + 3" (identifier "piVar33") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != iVar28)" (( "(") (binary_expression "iVar4 != iVar28" (identifier "iVar4") (!= "!=") (identifier "iVar28")) () ")")) (; ";")) (if_statement "if (bVar2) {\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }\n        else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n          pppppppuVar3 = (uint *******)0x200;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xc] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;\n          iVar36 = iVar25;\n          ppppppuVar35 = ppppppuVar18;\n          do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);\n        }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)0x200;" (assignment_expression "pppppppuVar3 = (uint *******)0x200" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x200" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x200"))) (; ";")) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" (identifier "ppppppuVar18") (= "=") (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2ced8)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2ced8)" (* "*") (cast_expression "(code **)(puVar39 + 0x2ced8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2ced8)" (( "(") (binary_expression "puVar39 + 0x2ced8" (identifier "puVar39") (+ "+") (number_literal "0x2ced8")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "pppppppuVar20[0xc] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xc] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xc]" (identifier "pppppppuVar20") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppuVar18")) (; ";")) (if_statement "if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;" (if "if") (parenthesized_expression "(ppppppuVar18 == (uint ******)0x0)" (( "(") (binary_expression "ppppppuVar18 == (uint ******)0x0" (identifier "ppppppuVar18") (== "==") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000495c0;" (goto "goto") (statement_identifier "LAB_000495c0") (; ";"))) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" (identifier "iVar36") (= "=") (identifier "iVar25")) (; ";")) (expression_statement "ppppppuVar35 = ppppppuVar18;" (assignment_expression "ppppppuVar35 = ppppppuVar18" (identifier "ppppppuVar35") (= "=") (identifier "ppppppuVar18")) (; ";")) (do_statement "do {\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          } while (ppppppuVar18 + 0x100 != ppppppuVar35);" (do "do") (compound_statement "{\n            piVar33 = *ppiVar30;\n            if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }\n            ppppppuVar35 = ppppppuVar35 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            iVar36 = iVar36 + 4;\n          }" ({ "{") (expression_statement "piVar33 = *ppiVar30;" (assignment_expression "piVar33 = *ppiVar30" (identifier "piVar33") (= "=") (pointer_expression "*ppiVar30" (* "*") (identifier "ppiVar30"))) (; ";")) (if_statement "if (piVar33 != (int *)0x0) {\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }" (if "if") (parenthesized_expression "(piVar33 != (int *)0x0)" (( "(") (binary_expression "piVar33 != (int *)0x0" (identifier "piVar33") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pppppppuVar3 = (uint *******)0x1;\n              ppppppuVar11 = ppppppuVar35;\n              do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);\n            }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)0x1;" (assignment_expression "pppppppuVar3 = (uint *******)0x1" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x1" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppppppuVar11 = ppppppuVar35;" (assignment_expression "ppppppuVar11 = ppppppuVar35" (identifier "ppppppuVar11") (= "=") (identifier "ppppppuVar35")) (; ";")) (do_statement "do {\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              } while (piVar33 != (int *)0x0);" (do "do") (compound_statement "{\n                if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }\n                piVar33 = (int *)((uint)piVar33 >> 1);\n                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n                ppppppuVar11 = ppppppuVar11 + 1;\n              }" ({ "{") (if_statement "if (((uint)piVar33 & 1) != 0) {\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }" (if "if") (parenthesized_expression "(((uint)piVar33 & 1) != 0)" (( "(") (binary_expression "((uint)piVar33 & 1) != 0" (parenthesized_expression "((uint)piVar33 & 1)" (( "(") (binary_expression "(uint)piVar33 & 1" (cast_expression "(uint)piVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar33")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar28 = 0;\n                  puVar19 = puVar13;\n                  puVar22 = puVar32;\n                  iVar4 = iVar36;\n                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }\n                  *ppppppuVar11 = (uint *****)*puVar22;\n                  ppppppuVar11[0x100] = (uint *****)*puVar19;\n                }" ({ "{") (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" (identifier "iVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19 = puVar13;" (assignment_expression "puVar19 = puVar13" (identifier "puVar19") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar22 = puVar32;" (assignment_expression "puVar22 = puVar32" (identifier "puVar22") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "iVar4 = iVar36;" (assignment_expression "iVar4 = iVar36" (identifier "iVar4") (= "=") (identifier "iVar36")) (; ";")) (if_statement "if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }" (if "if") (parenthesized_expression "(((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0)" (( "(") (binary_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00))" (( "(") (binary_expression "(uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)" (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")) (& "&") (pointer_expression "*(uint *)(iVar36 + 0xc00)" (* "*") (cast_expression "(uint *)(iVar36 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0xc00)" (( "(") (binary_expression "iVar36 + 0xc00" (identifier "iVar36") (+ "+") (number_literal "0xc00")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                    puVar19 = puVar13 + iVar28;\n                    puVar22 = puVar32 + iVar28;\n                  }" ({ "{") (do_statement "do {\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    } while (((uint)pppppppuVar3 & *puVar12) == 0);" (do "do") (compound_statement "{\n                      puVar12 = (uint *)(iVar4 + 0xc20);\n                      iVar28 = iVar28 + 1;\n                      iVar4 = iVar4 + 0x20;\n                    }" ({ "{") (expression_statement "puVar12 = (uint *)(iVar4 + 0xc20);" (assignment_expression "puVar12 = (uint *)(iVar4 + 0xc20)" (identifier "puVar12") (= "=") (cast_expression "(uint *)(iVar4 + 0xc20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc20)" (( "(") (binary_expression "iVar4 + 0xc20" (identifier "iVar4") (+ "+") (number_literal "0xc20")) () ")")))) (; ";")) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uint)pppppppuVar3 & *puVar12) == 0)" (( "(") (binary_expression "((uint)pppppppuVar3 & *puVar12) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *puVar12)" (( "(") (binary_expression "(uint)pppppppuVar3 & *puVar12" (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")) (& "&") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar19 = puVar13 + iVar28;" (assignment_expression "puVar19 = puVar13 + iVar28" (identifier "puVar19") (= "=") (binary_expression "puVar13 + iVar28" (identifier "puVar13") (+ "+") (identifier "iVar28"))) (; ";")) (expression_statement "puVar22 = puVar32 + iVar28;" (assignment_expression "puVar22 = puVar32 + iVar28" (identifier "puVar22") (= "=") (binary_expression "puVar32 + iVar28" (identifier "puVar32") (+ "+") (identifier "iVar28"))) (; ";")) (} "}"))) (expression_statement "*ppppppuVar11 = (uint *****)*puVar22;" (assignment_expression "*ppppppuVar11 = (uint *****)*puVar22" (pointer_expression "*ppppppuVar11" (* "*") (identifier "ppppppuVar11")) (= "=") (cast_expression "(uint *****)*puVar22" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")))) (; ";")) (expression_statement "ppppppuVar11[0x100] = (uint *****)*puVar19;" (assignment_expression "ppppppuVar11[0x100] = (uint *****)*puVar19" (subscript_expression "ppppppuVar11[0x100]" (identifier "ppppppuVar11") ([ "[") (number_literal "0x100") (] "]")) (= "=") (cast_expression "(uint *****)*puVar19" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")))) (; ";")) (} "}"))) (expression_statement "piVar33 = (int *)((uint)piVar33 >> 1);" (assignment_expression "piVar33 = (int *)((uint)piVar33 >> 1)" (identifier "piVar33") (= "=") (cast_expression "(int *)((uint)piVar33 >> 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)piVar33 >> 1)" (( "(") (binary_expression "(uint)piVar33 >> 1" (cast_expression "(uint)piVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar33")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((int)pppppppuVar3 << 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar3 << 1)" (( "(") (binary_expression "(int)pppppppuVar3 << 1" (cast_expression "(int)pppppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar3")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppppppuVar11 = ppppppuVar11 + 1;" (assignment_expression "ppppppuVar11 = ppppppuVar11 + 1" (identifier "ppppppuVar11") (= "=") (binary_expression "ppppppuVar11 + 1" (identifier "ppppppuVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar33 != (int *)0x0)" (( "(") (binary_expression "piVar33 != (int *)0x0" (identifier "piVar33") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "ppppppuVar35 = ppppppuVar35 + 0x20;" (assignment_expression "ppppppuVar35 = ppppppuVar35 + 0x20" (identifier "ppppppuVar35") (= "=") (binary_expression "ppppppuVar35 + 0x20" (identifier "ppppppuVar35") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" (identifier "ppiVar30") (= "=") (binary_expression "ppiVar30 + 1" (identifier "ppiVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" (identifier "iVar36") (= "=") (binary_expression "iVar36 + 4" (identifier "iVar36") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppuVar18 + 0x100 != ppppppuVar35)" (( "(") (binary_expression "ppppppuVar18 + 0x100 != ppppppuVar35" (binary_expression "ppppppuVar18 + 0x100" (identifier "ppppppuVar18") (+ "+") (number_literal "0x100")) (!= "!=") (identifier "ppppppuVar35")) () ")")) (; ";")) (} "}")) (else_clause "else {\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" (else "else") (compound_statement "{\n          pppppppuVar3 = (uint *******)0x100;\n          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);\n          pppppppuVar20[0xb] = ppppppuVar18;\n          if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }\n          pppppppuVar17 = pppppppuVar17 + 0x18;\n          iVar4 = 0;\n          iVar36 = iVar25;\n          do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);\n        }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)0x100;" (assignment_expression "pppppppuVar3 = (uint *******)0x100" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x100" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x100"))) (; ";")) (expression_statement "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);" (assignment_expression "ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" (identifier "ppppppuVar18") (= "=") (cast_expression "(uint ******)(**(code **)(puVar39 + 0x2ced8))(4)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar39 + 0x2ced8))(4)" (parenthesized_expression "(**(code **)(puVar39 + 0x2ced8))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2ced8)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2ced8)" (* "*") (cast_expression "(code **)(puVar39 + 0x2ced8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2ced8)" (( "(") (binary_expression "puVar39 + 0x2ced8" (identifier "puVar39") (+ "+") (number_literal "0x2ced8")) () ")"))))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (expression_statement "pppppppuVar20[0xb] = ppppppuVar18;" (assignment_expression "pppppppuVar20[0xb] = ppppppuVar18" (subscript_expression "pppppppuVar20[0xb]" (identifier "pppppppuVar20") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppuVar18")) (; ";")) (if_statement "if (ppppppuVar18 == (uint ******)0x0) {\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }" (if "if") (parenthesized_expression "(ppppppuVar18 == (uint ******)0x0)" (( "(") (binary_expression "ppppppuVar18 == (uint ******)0x0" (identifier "ppppppuVar18") (== "==") (cast_expression "(uint ******)0x0" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);\nLAB_000495c4:\n            (*pcVar40)(puVar32);\n            iVar36 = local_e8;\n            goto LAB_000495d4;\n          }" ({ "{") (labeled_statement "LAB_000495c0:\n            pcVar40 = *(code **)(puVar39 + 0x2d10c);" (statement_identifier "LAB_000495c0") (: ":") (expression_statement "pcVar40 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar40 = *(code **)(puVar39 + 0x2d10c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) (; ";"))) (labeled_statement "LAB_000495c4:\n            (*pcVar40)(puVar32);" (statement_identifier "LAB_000495c4") (: ":") (expression_statement "(*pcVar40)(puVar32);" (call_expression "(*pcVar40)(puVar32)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(puVar32)" (( "(") (identifier "puVar32") () ")"))) (; ";"))) (expression_statement "iVar36 = local_e8;" (assignment_expression "iVar36 = local_e8" (identifier "iVar36") (= "=") (identifier "local_e8")) (; ";")) (goto_statement "goto LAB_000495d4;" (goto "goto") (statement_identifier "LAB_000495d4") (; ";")) (} "}"))) (expression_statement "pppppppuVar17 = pppppppuVar17 + 0x18;" (assignment_expression "pppppppuVar17 = pppppppuVar17 + 0x18" (identifier "pppppppuVar17") (= "=") (binary_expression "pppppppuVar17 + 0x18" (identifier "pppppppuVar17") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" (identifier "iVar36") (= "=") (identifier "iVar25")) (; ";")) (do_statement "do {\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          } while (iVar4 != 0x100);" (do "do") (compound_statement "{\n            pppppppuVar3 = (uint *******)0x1;\n            iVar28 = iVar4;\n            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }\n            iVar4 = iVar4 + 0x20;\n            ppiVar30 = ppiVar30 + 1;\n            pppppppuVar17 = pppppppuVar17 + 1;\n            iVar36 = iVar36 + 4;\n          }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)0x1;" (assignment_expression "pppppppuVar3 = (uint *******)0x1" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x1" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar28 = iVar4;" (assignment_expression "iVar28 = iVar4" (identifier "iVar28") (= "=") (identifier "iVar4")) (; ";")) (for_statement "for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))\n            {\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }" (for "for") (( "(") (assignment_expression "piVar33 = *ppiVar30" (identifier "piVar33") (= "=") (pointer_expression "*ppiVar30" (* "*") (identifier "ppiVar30"))) (; ";") (binary_expression "piVar33 != (int *)0x0" (identifier "piVar33") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar33 = (int *)((uint)piVar33 >> 1)" (identifier "piVar33") (= "=") (cast_expression "(int *)((uint)piVar33 >> 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)piVar33 >> 1)" (( "(") (binary_expression "(uint)piVar33 >> 1" (cast_expression "(uint)piVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar33")) (>> ">>") (number_literal "1")) () ")")))) () ")") (compound_statement "{\n              if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }\n              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);\n              iVar28 = iVar28 + 1;\n            }" ({ "{") (if_statement "if (((uint)piVar33 & 1) != 0) {\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }" (if "if") (parenthesized_expression "(((uint)piVar33 & 1) != 0)" (( "(") (binary_expression "((uint)piVar33 & 1) != 0" (parenthesized_expression "((uint)piVar33 & 1)" (( "(") (binary_expression "(uint)piVar33 & 1" (cast_expression "(uint)piVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar33")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar29 = 0;\n                iVar31 = iVar36;\n                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }\n                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }\n              }" ({ "{") (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" (identifier "iVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar31 = iVar36;" (assignment_expression "iVar31 = iVar36" (identifier "iVar31") (= "=") (identifier "iVar36")) (; ";")) (if_statement "if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }" (if "if") (parenthesized_expression "(((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0)" (( "(") (binary_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00))" (( "(") (binary_expression "(uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)" (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")) (& "&") (pointer_expression "*(uint *)(iVar36 + 0xc00)" (* "*") (cast_expression "(uint *)(iVar36 + 0xc00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 0xc00)" (( "(") (binary_expression "iVar36 + 0xc00" (identifier "iVar36") (+ "+") (number_literal "0xc00")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);\n                  iVar29 = iVar29 * 4;\n                }" ({ "{") (do_statement "do {\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  } while (((uint)pppppppuVar3 & *puVar12) == 0);" (do "do") (compound_statement "{\n                    puVar12 = (uint *)(iVar31 + 0xc20);\n                    iVar29 = iVar29 + 1;\n                    iVar31 = iVar31 + 0x20;\n                  }" ({ "{") (expression_statement "puVar12 = (uint *)(iVar31 + 0xc20);" (assignment_expression "puVar12 = (uint *)(iVar31 + 0xc20)" (identifier "puVar12") (= "=") (cast_expression "(uint *)(iVar31 + 0xc20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0xc20)" (( "(") (binary_expression "iVar31 + 0xc20" (identifier "iVar31") (+ "+") (number_literal "0xc20")) () ")")))) (; ";")) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" (identifier "iVar29") (= "=") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar31 = iVar31 + 0x20;" (assignment_expression "iVar31 = iVar31 + 0x20" (identifier "iVar31") (= "=") (binary_expression "iVar31 + 0x20" (identifier "iVar31") (+ "+") (number_literal "0x20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uint)pppppppuVar3 & *puVar12) == 0)" (( "(") (binary_expression "((uint)pppppppuVar3 & *puVar12) == 0" (parenthesized_expression "((uint)pppppppuVar3 & *puVar12)" (( "(") (binary_expression "(uint)pppppppuVar3 & *puVar12" (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")) (& "&") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar29 = iVar29 * 4;" (assignment_expression "iVar29 = iVar29 * 4" (identifier "iVar29") (= "=") (binary_expression "iVar29 * 4" (identifier "iVar29") (* "*") (number_literal "4"))) (; ";")) (} "}"))) (if_statement "if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }\n                else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" (if "if") (parenthesized_expression "(((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0)" (( "(") (binary_expression "((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0" (parenthesized_expression "((uint)pppppppuVar3 & (uint)*pppppppuVar17)" (( "(") (binary_expression "(uint)pppppppuVar3 & (uint)*pppppppuVar17" (cast_expression "(uint)pppppppuVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppuVar3")) (& "&") (binary_expression "(uint)*pppppppuVar17" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pppppppuVar17"))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);\n                }" ({ "{") (expression_statement "ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);" (assignment_expression "ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29)" (subscript_expression "ppppppuVar18[iVar28]" (identifier "ppppppuVar18") ([ "[") (identifier "iVar28") (] "]")) (= "=") (pointer_expression "*(uint ******)((int)puVar32 + iVar29)" (* "*") (cast_expression "(uint ******)((int)puVar32 + iVar29)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)puVar32 + iVar29)" (( "(") (binary_expression "(int)puVar32 + iVar29" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (identifier "iVar29")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" (else "else") (compound_statement "{\n                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);\n                }" ({ "{") (expression_statement "ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);" (assignment_expression "ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29)" (subscript_expression "ppppppuVar18[iVar28]" (identifier "ppppppuVar18") ([ "[") (identifier "iVar28") (] "]")) (= "=") (pointer_expression "*(uint ******)((int)puVar13 + iVar29)" (* "*") (cast_expression "(uint ******)((int)puVar13 + iVar29)" (( "(") (type_descriptor "uint ******" (type_identifier "uint") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)puVar13 + iVar29)" (( "(") (binary_expression "(int)puVar13 + iVar29" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "iVar29")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((int)pppppppuVar3 << 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar3 << 1)" (( "(") (binary_expression "(int)pppppppuVar3 << 1" (cast_expression "(int)pppppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar3")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "ppiVar30 = ppiVar30 + 1;" (assignment_expression "ppiVar30 = ppiVar30 + 1" (identifier "ppiVar30") (= "=") (binary_expression "ppiVar30 + 1" (identifier "ppiVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppuVar17 = pppppppuVar17 + 1;" (assignment_expression "pppppppuVar17 = pppppppuVar17 + 1" (identifier "pppppppuVar17") (= "=") (binary_expression "pppppppuVar17 + 1" (identifier "pppppppuVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" (identifier "iVar36") (= "=") (binary_expression "iVar36 + 4" (identifier "iVar36") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0x100)" (( "(") (binary_expression "iVar4 != 0x100" (identifier "iVar4") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (} "}")))) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d10c)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) (; ";")) (if_statement "if ((int)local_a4 << 0x15 < 0) {\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }" (if "if") (parenthesized_expression "((int)local_a4 << 0x15 < 0)" (( "(") (binary_expression "(int)local_a4 << 0x15 < 0" (binary_expression "(int)local_a4 << 0x15" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (<< "<<") (number_literal "0x15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppuVar3 = (uint *******)0x0;\n          do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);\n          pcVar8 = *(code **)(puVar39 + 0x2d10c);\n        }" ({ "{") (expression_statement "pppppppuVar3 = (uint *******)0x0;" (assignment_expression "pppppppuVar3 = (uint *******)0x0" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          } while (pppppppuVar3 != pppppppuVar37);" (do "do") (compound_statement "{\n            if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }\n            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);\n            puVar7 = puVar7 + 8;\n          }" ({ "{") (if_statement "if ((*puVar7 & 0x400) != 0) {\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }" (if "if") (parenthesized_expression "((*puVar7 & 0x400) != 0)" (( "(") (binary_expression "(*puVar7 & 0x400) != 0" (parenthesized_expression "(*puVar7 & 0x400)" (( "(") (binary_expression "*puVar7 & 0x400" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];\n              ppppppuVar18[10] = pppppuVar16;\n              if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }\n              break;\n            }" ({ "{") (expression_statement "pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];" (assignment_expression "pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" (identifier "pppppuVar16") (= "=") (cast_expression "(uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" (( "(") (type_descriptor "uint *****" (type_identifier "uint") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)]" (identifier "puVar13") ([ "[") (cast_expression "(int)((int)pppppppuVar3 + (int)pppppppuVar37)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppuVar3 + (int)pppppppuVar37)" (( "(") (binary_expression "(int)pppppppuVar3 + (int)pppppppuVar37" (cast_expression "(int)pppppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar3")) (+ "+") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37"))) () ")"))) (] "]")))) (; ";")) (expression_statement "ppppppuVar18[10] = pppppuVar16;" (assignment_expression "ppppppuVar18[10] = pppppuVar16" (subscript_expression "ppppppuVar18[10]" (identifier "ppppppuVar18") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "pppppuVar16")) (; ";")) (if_statement "if (bVar2) {\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n                ppppppuVar18[0x10a] = pppppuVar16;\n              }" ({ "{") (expression_statement "ppppppuVar18[0x10a] = pppppuVar16;" (assignment_expression "ppppppuVar18[0x10a] = pppppuVar16" (subscript_expression "ppppppuVar18[0x10a]" (identifier "ppppppuVar18") ([ "[") (number_literal "0x10a") (] "]")) (= "=") (identifier "pppppuVar16")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);" (assignment_expression "pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1)" (identifier "pppppppuVar3") (= "=") (cast_expression "(uint *******)((int)pppppppuVar3 + 1)" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppuVar3 + 1)" (( "(") (binary_expression "(int)pppppppuVar3 + 1" (cast_expression "(int)pppppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar3")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar7 = puVar7 + 8;" (assignment_expression "puVar7 = puVar7 + 8" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppuVar3 != pppppppuVar37)" (( "(") (binary_expression "pppppppuVar3 != pppppppuVar37" (identifier "pppppppuVar3") (!= "!=") (identifier "pppppppuVar37")) () ")")) (; ";")) (expression_statement "pcVar8 = *(code **)(puVar39 + 0x2d10c);" (assignment_expression "pcVar8 = *(code **)(puVar39 + 0x2d10c)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "(*pcVar8)(puVar32);" (call_expression "(*pcVar8)(puVar32)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(puVar32)" (( "(") (identifier "puVar32") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(local_e8);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(local_e8)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(local_e8)" (( "(") (identifier "local_e8") () ")"))) (; ";")) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" (identifier "iVar36") (= "=") (identifier "iVar25")) (; ";")) (do_statement "do {\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);" (do "do") (compound_statement "{\n          iVar4 = iVar36 + 0xc;\n          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n          iVar36 = iVar4;\n        }" ({ "{") (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" (identifier "iVar4") (= "=") (binary_expression "iVar36 + 0xc" (identifier "iVar36") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar36 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar36 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar36 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 8)" (( "(") (binary_expression "iVar36 + 8" (identifier "iVar36") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" (identifier "iVar36") (= "=") (identifier "iVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 + (int)pppppppuVar37 * 0xc != iVar4)" (( "(") (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc != iVar4" (binary_expression "iVar25 + (int)pppppppuVar37 * 0xc" (identifier "iVar25") (+ "+") (binary_expression "(int)pppppppuVar37 * 0xc" (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37")) (* "*") (number_literal "0xc"))) (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00048f60;" (goto "goto") (statement_identifier "LAB_00048f60") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000495d4:\n    (**(code **)(puVar39 + 0x2d10c))(iVar36);" (statement_identifier "LAB_000495d4") (: ":") (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar36);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar36)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(iVar36)" (( "(") (identifier "iVar36") () ")"))) (; ";"))) (expression_statement "iVar36 = iVar25;" (assignment_expression "iVar36 = iVar25" (identifier "iVar36") (= "=") (identifier "iVar25")) (; ";")) (do_statement "do {\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);" (do "do") (compound_statement "{\n      iVar4 = iVar36 + 0xc;\n      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));\n      iVar36 = iVar4;\n    }" ({ "{") (expression_statement "iVar4 = iVar36 + 0xc;" (assignment_expression "iVar4 = iVar36 + 0xc" (identifier "iVar4") (= "=") (binary_expression "iVar36 + 0xc" (identifier "iVar36") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));" (call_expression "(**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8))" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar36 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar36 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar36 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar36 + 8)" (( "(") (binary_expression "iVar36 + 8" (identifier "iVar36") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar36 = iVar4;" (assignment_expression "iVar36 = iVar4" (identifier "iVar36") (= "=") (identifier "iVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25)" (( "(") (binary_expression "iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" (identifier "iVar4") (!= "!=") (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4 + iVar25" (binary_expression "(int)(local_118 + (int)pppppppuVar37) * 4" (cast_expression "(int)(local_118 + (int)pppppppuVar37)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_118 + (int)pppppppuVar37)" (( "(") (binary_expression "local_118 + (int)pppppppuVar37" (identifier "local_118") (+ "+") (cast_expression "(int)pppppppuVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppuVar37"))) () ")"))) (* "*") (number_literal "4")) (+ "+") (identifier "iVar25"))) () ")")) (; ";")) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (labeled_statement "LAB_00048f5c:\n    uVar5 = 0;" (statement_identifier "LAB_00048f5c") (: ":") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00048f60;" (goto "goto") (statement_identifier "LAB_00048f60") (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar39 + 0x2d10c))(iVar25);" (call_expression "(**(code **)(puVar39 + 0x2d10c))(iVar25)" (parenthesized_expression "(**(code **)(puVar39 + 0x2d10c))" (( "(") (pointer_expression "**(code **)(puVar39 + 0x2d10c)" (* "*") (pointer_expression "*(code **)(puVar39 + 0x2d10c)" (* "*") (cast_expression "(code **)(puVar39 + 0x2d10c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar39 + 0x2d10c)" (( "(") (binary_expression "puVar39 + 0x2d10c" (identifier "puVar39") (+ "+") (number_literal "0x2d10c")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")"))) (; ";")) (if_statement "if (pppppppuVar37 != (uint *******)0x0) {\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" (if "if") (parenthesized_expression "(pppppppuVar37 != (uint *******)0x0)" (( "(") (binary_expression "pppppppuVar37 != (uint *******)0x0" (identifier "pppppppuVar37") (!= "!=") (cast_expression "(uint *******)0x0" (( "(") (type_descriptor "uint *******" (type_identifier "uint") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar5 = 0;\n    goto LAB_00048f60;\n  }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00048f60;" (goto "goto") (statement_identifier "LAB_00048f60") (; ";")) (} "}"))) (goto_statement "goto LAB_00049784;" (goto "goto") (statement_identifier "LAB_00049784") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (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)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) 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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (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))))) (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (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: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (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: (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))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (labeled_statement label: (statement_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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))))) (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (unary_expression argument: (parenthesized_expression (identifier))) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (number_literal)) right: (identifier)) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (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: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) 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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (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: (type_identifier)) value: (identifier)) right: (number_literal))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (number_literal)) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))))

/* WARNING: Type propagation algorithm not settling */

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

{
  byte bVar1;
  bool bVar2;
  uint *******pppppppuVar3;
  int iVar4;
  uint uVar5;
  int *piVar6;
  uint *puVar7;
  code *pcVar8;
  int **ppiVar9;
  int **ppiVar10;
  uint ******ppppppuVar11;
  uint *puVar12;
  undefined4 *puVar13;
  uint *******pppppppuVar14;
  uint *******pppppppuVar15;
  uint *****pppppuVar16;
  uint *******pppppppuVar17;
  uint ******ppppppuVar18;
  undefined4 *puVar19;
  uint *******pppppppuVar20;
  uint uVar21;
  undefined4 *puVar22;
  uint uVar23;
  uint ****ppppuVar24;
  int iVar25;
  uint ******ppppppuVar26;
  uint *puVar27;
  int iVar28;
  int iVar29;
  int **ppiVar30;
  int iVar31;
  undefined4 *puVar32;
  int unaff_s0;
  int *piVar33;
  uint *******pppppppuVar34;
  uint ******ppppppuVar35;
  int iVar36;
  uint *******unaff_s2;
  uint *******pppppppuVar37;
  int unaff_s3;
  undefined *puVar38;
  uint *******unaff_s5;
  undefined *unaff_s6;
  undefined4 *unaff_s7;
  undefined *puVar39;
  code *pcVar40;
  int *unaff_s8;
  undefined4 uVar41;
  int local_124;
  int local_118;
  int local_f4;
  undefined1 *local_f0;
  undefined4 local_ec;
  int local_e8;
  uint *******local_e4;
  uint local_e0;
  uint local_dc;
  uint local_d8;
  uint local_d4;
  uint local_d0;
  uint local_cc;
  uint local_c8;
  uint ******local_c4;
  uint local_c0;
  uint local_bc;
  uint local_b8;
  uint local_b4;
  uint local_b0;
  uint local_ac;
  uint local_a8;
  int *local_a4;
  uint local_a0;
  uint local_9c;
  uint local_98;
  uint local_94;
  uint local_90;
  uint local_8c;
  uint local_88;
  int *local_84;
  int local_80;
  int local_7c;
  uint *******local_78;
  int local_74;
  undefined *local_70;
  uint *******local_6c;
  undefined *local_68;
  undefined4 *local_64;
  int *local_60;
  undefined4 local_5c;
  undefined4 local_38;
  undefined4 local_34;
  uint ******local_30;
  uint *******local_2c;
  
  puVar39 = PTR___stack_chk_guard_00075be8;
  local_38 = 0;
  local_34 = 0;
  local_30 = (uint ******)0x0;
  iVar36 = param_1[7] + (int)param_2 * 0xc;
  local_2c = *(uint ********)PTR___stack_chk_guard_00075be8;
  iVar25 = *(int *)(iVar36 + 4);
  pppppppuVar20 = param_2;
  puVar38 = PTR_LAB_00075920;
  if (0 < iVar25) {
    unaff_s7 = &local_38;
    unaff_s0 = 0;
    unaff_s5 = (uint *******)(iVar36 + 8);
    puVar38 = PTR_LAB_00075920 + 0x5230;
    unaff_s6 = PTR_LAB_00075920 + 0x6140;
    do {
      pppppppuVar3 = *(uint ********)(*(int *)(iVar36 + 8) + unaff_s0 * 4);
      if ((param_2 != pppppppuVar3) && ((*(byte *)(*param_1 + (int)pppppppuVar3 * 8 + 4) & 8) != 0))
      {
        iVar28 = (int)pppppppuVar3 * 0xc;
        iVar31 = param_1[5] + iVar28;
        puVar32 = *(undefined4 **)(iVar31 + 8);
        pppppppuVar20 = unaff_s5;
        iVar4 = FUN_00045230(iVar25,unaff_s5,*puVar32);
        if (*(int *)(iVar31 + 4) < 2) {
          if (iVar4 == 0) {
            pppppppuVar20 = (uint *******)(param_3 + 8);
            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));
            if (iVar4 != 0) goto LAB_000488c0;
          }
        }
        else if ((iVar4 == 0) &&
                (iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4),param_3 + 8), iVar4 != 0)) {
LAB_000488c0:
          iVar25 = param_1[7];
LAB_000488c4:
          pppppppuVar20 = param_4;
          uVar5 = FUN_00046140(unaff_s7,param_4,iVar25 + iVar28);
          if (uVar5 != 0) {
            (*(code *)PTR_free_00075bfc)(local_30);
            goto LAB_00048a80;
          }
          iVar25 = *(int *)(iVar36 + 4);
        }
        else {
          pppppppuVar20 = unaff_s5;
          if ((0 < (int)puVar32[1]) &&
             (iVar4 = FUN_00045230(iVar25,unaff_s5,puVar32[1]), iVar4 == 0)) {
            pppppppuVar20 = (uint *******)(param_3 + 8);
            iVar4 = FUN_00045230(*(undefined4 *)(param_3 + 4));
            if (iVar4 != 0) {
              iVar25 = param_1[7];
              goto LAB_000488c4;
            }
          }
        }
      }
      unaff_s0 = unaff_s0 + 1;
    } while (unaff_s0 < iVar25);
    unaff_s2 = param_2;
    unaff_s3 = param_3;
    unaff_s8 = param_1;
    if (0 < iVar25) {
      iVar4 = 0;
      iVar28 = param_3 + 4;
      pppppppuVar3 = (uint *******)(param_3 + 8);
      pppppppuVar17 = &local_30;
      do {
        pppppppuVar37 = pppppppuVar17;
        iVar31 = FUN_00045230(local_34,pppppppuVar17,
                              *(undefined4 *)(*(int *)(iVar36 + 8) + iVar4 * 4));
        pppppppuVar20 = pppppppuVar17;
        if (iVar31 == 0) {
          iVar29 = *(int *)(param_3 + 4);
          pppppppuVar17 = pppppppuVar3;
          iVar31 = FUN_00045230(iVar29);
          pppppppuVar20 = pppppppuVar3;
          pppppppuVar3 = pppppppuVar17;
          if ((-1 < iVar31 + -1) && (iVar31 + -1 < iVar29)) {
            *(int *)(param_3 + 4) = iVar29 + -1;
            FUN_00045494(iVar28);
            iVar25 = *(int *)(iVar36 + 4);
            pppppppuVar20 = pppppppuVar17;
          }
        }
        iVar4 = iVar4 + 1;
        pppppppuVar17 = pppppppuVar37;
      } while (iVar4 < iVar25);
    }
  }
  (*(code *)PTR_free_00075bfc)(local_30);
  uVar5 = 0;
  param_2 = unaff_s2;
  param_3 = unaff_s3;
  param_1 = unaff_s8;
LAB_00048a80:
  if (local_2c == *(uint ********)puVar39) {
    return uVar5;
  }
  uVar41 = 0x48af0;
  pppppppuVar17 = local_2c;
  puVar39 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  piVar6 = *(int **)(puVar39 + 0x2d0f8);
  local_84 = (int *)*piVar6;
  pppppppuVar3 = pppppppuVar20;
  local_80 = unaff_s0;
  local_7c = iVar36;
  local_78 = param_2;
  local_74 = param_3;
  local_70 = puVar38;
  local_6c = unaff_s5;
  local_68 = unaff_s6;
  local_64 = unaff_s7;
  local_60 = param_1;
  local_5c = uVar41;
  iVar25 = (**(code **)(puVar39 + 0x2d03c))(0x2c00);
  if (iVar25 == 0) goto LAB_00048f5c;
  ppppppuVar18 = pppppppuVar20[2];
  pppppppuVar20[0xb] = (uint ******)0x0;
  puVar7 = (uint *)(iVar25 + 0xc00);
  pppppppuVar20[0xc] = (uint ******)0x0;
  local_e4 = (uint *******)0x0;
  local_e0 = 0;
  local_dc = 0;
  local_d8 = 0;
  local_d4 = 0;
  local_d0 = 0;
  local_cc = 0;
  local_c8 = 0;
  if (0 < (int)ppppppuVar18) {
    iVar36 = *(int *)(puVar39 + 0x2ce30);
    local_124 = 0;
    iVar4 = *(int *)(puVar39 + 0x2ce30);
    pppppppuVar37 = (uint *******)0x0;
LAB_00048bd4:
    ppppppuVar35 = *pppppppuVar17 + (int)pppppppuVar20[3][local_124] * 2;
    bVar1 = *(byte *)(ppppppuVar35 + 1);
    uVar5 = (uint)((int)ppppppuVar35[1] << 8) >> 0x16;
    if (bVar1 == 1) {
      pppppppuVar34 = (uint *******)(&local_e4 + ((int)(uint)*(byte *)ppppppuVar35 >> 5));
      pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | 1 << (*(byte *)ppppppuVar35 & 0x1f));
      *pppppppuVar34 = (uint ******)pppppppuVar3;
LAB_00048fc0:
      pppppppuVar34 = local_e4;
      if (uVar5 == 0) goto LAB_000490bc;
      if ((uVar5 & 0x20) == 0) {
        if ((uVar5 & 0x80) != 0) goto LAB_00049388;
LAB_00048fdc:
        if ((uVar5 & 4) != 0) {
          if (bVar1 == 1) {
            if (((uint)ppppppuVar35[1] & 0x200) == 0) goto LAB_00049388;
            ppppppuVar11 = pppppppuVar17[0x17];
          }
          else {
            ppppppuVar11 = pppppppuVar17[0x17];
          }
          if ((int)ppppppuVar11 < 2) {
            pppppppuVar15 = pppppppuVar17 + 0x18;
            uVar21 = 0;
            pppppppuVar34 = (uint *******)&local_e4;
            do {
              pppppppuVar14 = pppppppuVar34 + 1;
              ppppppuVar11 = *pppppppuVar15;
              pppppppuVar15 = pppppppuVar15 + 1;
              pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 & (uint)ppppppuVar11);
              *pppppppuVar34 = (uint ******)pppppppuVar3;
              uVar21 = uVar21 | (uint)pppppppuVar3;
              pppppppuVar34 = pppppppuVar14;
            } while (&local_c4 != pppppppuVar14);
          }
          else {
            ppppppuVar11 = pppppppuVar17[0xf];
            pppppppuVar15 = pppppppuVar17 + 0x18;
            uVar21 = 0;
            pppppppuVar34 = (uint *******)&local_e4;
            do {
              pppppppuVar3 = pppppppuVar34 + 1;
              pppppuVar16 = *ppppppuVar11;
              ppppppuVar26 = *pppppppuVar15;
              ppppppuVar11 = ppppppuVar11 + 1;
              pppppppuVar15 = pppppppuVar15 + 1;
              ppppppuVar26 = (uint ******)
                             ((~(uint)pppppuVar16 | (uint)ppppppuVar26) & (uint)*pppppppuVar34);
              *pppppppuVar34 = ppppppuVar26;
              uVar21 = uVar21 | (uint)ppppppuVar26;
              pppppppuVar34 = pppppppuVar3;
            } while (&local_c4 != pppppppuVar3);
          }
          if (uVar21 == 0) goto LAB_00048c28;
        }
        if ((uVar5 & 8) == 0) {
LAB_000490bc:
          pppppppuVar34 = (uint *******)0x0;
          if (0 < (int)pppppppuVar37) {
            pppppppuVar34 = (uint *******)0x0;
            puVar12 = puVar7;
            do {
              pppppppuVar3 = (uint *******)((int)pppppppuVar34 * 0x20);
              if ((bVar1 != 1) ||
                 (((puVar7 + ((int)(uint)*(byte *)ppppppuVar35 >> 5))[(int)pppppppuVar34 * 8] >>
                   (*(byte *)ppppppuVar35 & 0x1f) & 1) != 0)) {
                uVar5 = 0;
                pppppppuVar3 = (uint *******)&local_e4;
                pppppppuVar15 = &local_c4;
                puVar27 = puVar12;
                do {
                  pppppppuVar14 = pppppppuVar3 + 1;
                  uVar21 = *puVar27;
                  ppppppuVar18 = *pppppppuVar3;
                  puVar27 = puVar27 + 1;
                  *pppppppuVar15 = (uint ******)((uint)ppppppuVar18 & uVar21);
                  uVar5 = uVar5 | (uint)ppppppuVar18 & uVar21;
                  pppppppuVar3 = pppppppuVar14;
                  pppppppuVar15 = pppppppuVar15 + 1;
                } while (&local_c4 != pppppppuVar14);
                pppppppuVar3 = (uint *******)&local_e4;
                if (uVar5 != 0) {
                  uVar21 = 0;
                  uVar5 = 0;
                  puVar27 = puVar12;
                  ppiVar30 = &local_a4;
                  do {
                    uVar23 = *puVar27;
                    puVar27 = puVar27 + 1;
                    piVar33 = (int *)(~(uint)*pppppppuVar3 & uVar23);
                    ppppppuVar18 = (uint ******)(~uVar23 & (uint)*pppppppuVar3);
                    *ppiVar30 = piVar33;
                    *pppppppuVar3 = ppppppuVar18;
                    uVar5 = uVar5 | (uint)piVar33;
                    uVar21 = uVar21 | (uint)ppppppuVar18;
                    pppppppuVar3 = pppppppuVar3 + 1;
                    ppiVar30 = ppiVar30 + 1;
                  } while (puVar12 + 8 != puVar27);
                  pppppppuVar15 = (uint *******)(iVar25 + (int)pppppppuVar34 * 0xc);
                  if (uVar5 != 0) {
                    local_118 = (int)pppppppuVar37 * 2;
                    puVar27 = puVar7 + (int)pppppppuVar37 * 8;
                    *puVar27 = (uint)local_a4;
                    puVar27[1] = local_a0;
                    puVar27[2] = local_9c;
                    puVar27[3] = local_98;
                    puVar27[4] = local_94;
                    puVar27[5] = local_90;
                    puVar27[6] = local_8c;
                    puVar27[7] = local_88;
                    puVar12[1] = local_c0;
                    puVar12[2] = local_bc;
                    *puVar12 = (uint)local_c4;
                    puVar12[3] = local_b8;
                    puVar12[4] = local_b4;
                    puVar12[5] = local_b0;
                    puVar12[6] = local_ac;
                    puVar12[7] = local_a8;
                    pppppppuVar3 = pppppppuVar15;
                    iVar28 = (*(code *)(iVar4 + 0x69e0))(iVar25 + (int)pppppppuVar37 * 0xc);
                    if (iVar28 != 0) goto LAB_000493b8;
                    pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);
                  }
                  pppppppuVar3 = (uint *******)pppppppuVar20[3][local_124];
                  iVar28 = (*(code *)(iVar36 + 0x33f8))(pppppppuVar15);
                  if (iVar28 == 0) {
                    local_118 = (int)pppppppuVar37 << 1;
                    goto LAB_000493b8;
                  }
                  if (uVar21 == 0) break;
                }
              }
              puVar12 = puVar12 + 8;
              pppppppuVar34 = (uint *******)((int)pppppppuVar34 + 1);
            } while ((int)pppppppuVar34 < (int)pppppppuVar37);
          }
          local_118 = (int)pppppppuVar37 * 2;
          if (pppppppuVar37 == pppppppuVar34) {
            ppppppuVar18 = pppppppuVar20[3];
            pcVar8 = *(code **)(puVar39 + 0x2d03c);
            puVar12 = puVar7 + (int)pppppppuVar37 * 8;
            *puVar12 = (uint)local_e4;
            pppppppuVar3 = (uint *******)(ppppppuVar18 + local_124);
            puVar12[1] = local_e0;
            puVar32 = (undefined4 *)(iVar25 + (int)pppppppuVar37 * 0xc);
            puVar12[2] = local_dc;
            puVar12[3] = local_d8;
            puVar12[4] = local_d4;
            puVar12[5] = local_d0;
            puVar12[6] = local_cc;
            puVar12[7] = local_c8;
            ppppppuVar35 = *pppppppuVar3;
            *puVar32 = 1;
            puVar32[1] = 1;
            puVar12 = (uint *)(*pcVar8)(4);
            puVar32[2] = puVar12;
            if (puVar12 != (uint *)0x0) {
              ppppppuVar18 = pppppppuVar20[2];
              pppppppuVar37 = (uint *******)((int)pppppppuVar37 + 1);
              *puVar12 = (uint)ppppppuVar35;
              local_e4 = (uint *******)0x0;
              local_e0 = 0;
              local_dc = 0;
              local_d8 = 0;
              local_d4 = 0;
              local_d0 = 0;
              local_cc = 0;
              local_c8 = 0;
              goto LAB_00048c28;
            }
            puVar32[1] = 0;
            *puVar32 = 0;
            if (pppppppuVar37 == (uint *******)0x0) {
              (**(code **)(puVar39 + 0x2d10c))(iVar25);
            }
            else {
LAB_000493b8:
              iVar36 = iVar25;
              do {
                iVar4 = iVar36 + 0xc;
                (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));
                iVar36 = iVar4;
              } while ((int)(local_118 + (int)pppppppuVar37) * 4 + iVar25 != iVar4);
              (**(code **)(puVar39 + 0x2d10c))(iVar25);
            }
            goto LAB_00048f5c;
          }
          ppppppuVar18 = pppppppuVar20[2];
          goto LAB_00048c28;
        }
        if ((bVar1 != 1) || (((uint)ppppppuVar35[1] & 0x200) == 0)) {
          pppppppuVar34 = pppppppuVar17 + 0x18;
          if ((int)pppppppuVar17[0x17] < 2) {
            pppppppuVar3 = (uint *******)0x0;
            pppppppuVar15 = (uint *******)&local_e4;
            do {
              pppppppuVar14 = pppppppuVar15 + 1;
              ppppppuVar11 = *pppppppuVar34;
              ppppppuVar26 = *pppppppuVar15;
              pppppppuVar34 = pppppppuVar34 + 1;
              *pppppppuVar15 = (uint ******)(~(uint)ppppppuVar11 & (uint)ppppppuVar26);
              pppppppuVar3 = (uint *******)
                             ((uint)pppppppuVar3 | ~(uint)ppppppuVar11 & (uint)ppppppuVar26);
              pppppppuVar15 = pppppppuVar14;
            } while (pppppppuVar14 != &local_c4);
          }
          else {
            ppppppuVar11 = pppppppuVar17[0xf];
            pppppppuVar3 = (uint *******)0x0;
            pppppppuVar15 = (uint *******)&local_e4;
            do {
              pppppppuVar14 = pppppppuVar15 + 1;
              pppppuVar16 = *ppppppuVar11;
              ppppppuVar26 = *pppppppuVar34;
              ppppppuVar11 = ppppppuVar11 + 1;
              pppppppuVar34 = pppppppuVar34 + 1;
              ppppppuVar26 = (uint ******)
                             (~((uint)ppppppuVar26 & (uint)pppppuVar16) & (uint)*pppppppuVar15);
              *pppppppuVar15 = ppppppuVar26;
              pppppppuVar3 = (uint *******)((uint)pppppppuVar3 | (uint)ppppppuVar26);
              pppppppuVar15 = pppppppuVar14;
            } while (&local_c4 != pppppppuVar14);
          }
          if (pppppppuVar3 == (uint *******)0x0) goto LAB_00048c28;
          goto LAB_000490bc;
        }
        local_e4 = (uint *******)0x0;
      }
      else {
        local_e0 = 0;
        local_e4 = (uint *******)0x0;
        local_dc = 0;
        local_d8 = 0;
        local_d4 = 0;
        local_d0 = 0;
        local_cc = 0;
        local_c8 = 0;
        if (((uint)pppppppuVar34 & 0x400) == 0) goto LAB_00048c28;
        local_e4 = (uint *******)0x400;
        if ((uVar5 & 0x80) == 0) goto LAB_00048fdc;
LAB_00049388:
        local_e4 = (uint *******)0x0;
      }
      local_e4 = (uint *******)0x0;
      local_e0 = 0;
      local_dc = 0;
      local_d8 = 0;
      local_d4 = 0;
      local_d0 = 0;
      local_cc = 0;
      local_c8 = 0;
    }
    else {
      if (bVar1 == 3) {
        pppppuVar16 = *ppppppuVar35;
        pppppppuVar34 = (uint *******)&local_e4;
        do {
          pppppppuVar15 = pppppppuVar34 + 1;
          ppppuVar24 = *pppppuVar16;
          pppppuVar16 = pppppuVar16 + 1;
          pppppppuVar3 = (uint *******)((uint)*pppppppuVar34 | (uint)ppppuVar24);
          *pppppppuVar34 = (uint ******)pppppppuVar3;
          pppppppuVar34 = pppppppuVar15;
        } while (&local_c4 != pppppppuVar15);
        goto LAB_00048fc0;
      }
      if (bVar1 == 5) {
        if ((int)pppppppuVar17[0x17] < 2) {
          local_e4 = (uint *******)0xffffffff;
          local_e0 = 0xffffffff;
          local_dc = 0xffffffff;
          local_d8 = 0xffffffff;
          local_d4 = 0xffffffff;
          local_d0 = 0xffffffff;
          local_cc = 0xffffffff;
          local_c8 = 0xffffffff;
        }
        else {
          ppppppuVar11 = pppppppuVar17[0xf];
          pppppppuVar3 = (uint *******)&local_e4;
          do {
            pppppppuVar34 = pppppppuVar3 + 1;
            pppppuVar16 = *ppppppuVar11;
            ppppppuVar11 = ppppppuVar11 + 1;
            *pppppppuVar3 = (uint ******)((uint)*pppppppuVar3 | (uint)pppppuVar16);
            pppppppuVar3 = pppppppuVar34;
          } while (&local_c4 != pppppppuVar34);
        }
        ppppppuVar11 = pppppppuVar17[0x20];
joined_r0x00049318:
        if (((uint)ppppppuVar11 & 0x40) == 0) {
          local_e4 = (uint *******)((uint)local_e4 & 0xfffffbff);
        }
        pppppppuVar3 = local_e4;
        if (((uint)ppppppuVar11 & 0x80) != 0) {
          pppppppuVar3 = (uint *******)&SUB_fffffffe;
          local_e4 = (uint *******)((uint)local_e4 & 0xfffffffe);
        }
        goto LAB_00048fc0;
      }
      pppppppuVar3 = (uint *******)0xffffffff;
      if (bVar1 == 7) {
        ppppppuVar11 = pppppppuVar17[0x20];
        local_e4 = (uint *******)0xffffffff;
        local_e0 = 0xffffffff;
        local_dc = 0xffffffff;
        local_d8 = 0xffffffff;
        goto joined_r0x00049318;
      }
    }
LAB_00048c28:
    local_124 = local_124 + 1;
    if ((int)ppppppuVar18 <= local_124) goto code_r0x00048c3c;
    goto LAB_00048bd4;
  }
  (**(code **)(puVar39 + 0x2d10c))(iVar25);
LAB_00049784:
  pppppppuVar3 = (uint *******)0x100;
  ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);
  pppppppuVar20[0xb] = ppppppuVar18;
  uVar5 = (uint)(ppppppuVar18 != (uint ******)0x0);
LAB_00048f60:
  if (local_84 == (int *)*piVar6) {
    return uVar5;
  }
  piVar6 = local_84;
  (**(code **)(puVar39 + 0x2d0b8))();
  if (*(char *)(pppppppuVar3 + 6) == '\x10') {
    ppppppuVar18 = (uint ******)pppppppuVar3[1][7];
    pppppppuVar3[3] = (uint ******)pppppppuVar3[1][3];
    pppppppuVar3[7] = ppppppuVar18;
    return 0;
  }
  pppppppuVar3[3] = (uint ******)pppppppuVar3;
  ppppppuVar18 = (uint ******)FUN_000445c0();
  pppppppuVar3[7] = ppppppuVar18;
  if (ppppppuVar18 == (uint ******)0xffffffff) {
    uVar5 = 0xc;
  }
  else {
    if (*(char *)(pppppppuVar3 + 6) == '\f') {
      iVar25 = *piVar6 + (int)ppppppuVar18 * 8;
      *(uint *)(iVar25 + 4) =
           *(uint *)(iVar25 + 4) & 0xff003fff | ((uint)pppppppuVar3[5] & 0x3ff) << 0xe;
      return 0;
    }
    uVar5 = 0;
  }
  return uVar5;
code_r0x00048c3c:
  if (0 < (int)pppppppuVar37) {
    local_f0 = (undefined1 *)((int)pppppppuVar37 + 1);
    local_ec = 0;
    iVar4 = (int)local_f0 * 4;
    iVar36 = (**(code **)(puVar39 + 0x2d03c))(iVar4);
    local_e8 = iVar36;
    if ((iVar36 == 0) || (local_f4 = 0, 0x155551aa < (int)pppppppuVar37)) {
      local_118 = (int)pppppppuVar37 << 1;
    }
    else {
      local_118 = (int)pppppppuVar37 * 2;
      puVar32 = (undefined4 *)(**(code **)(puVar39 + 0x2d03c))((int)pppppppuVar37 * 0xc);
      if (puVar32 != (undefined4 *)0x0) {
        iVar4 = iVar4 + -4;
        ppiVar30 = &local_a4;
        iVar28 = 0;
        puVar13 = puVar32 + (int)pppppppuVar37;
        local_a4 = (int *)0x0;
        piVar33 = (int *)(iVar25 + 4);
        local_a0 = 0;
        local_9c = 0;
        iVar36 = *(int *)(puVar39 + 0x2ce30);
        local_98 = 0;
        bVar2 = false;
        local_94 = 0;
        local_90 = 0;
        local_8c = 0;
        local_88 = 0;
        pcVar8 = (code *)(*(int *)(puVar39 + 0x2ce30) + 0x6cac);
        do {
          iVar31 = *piVar33;
          iVar29 = 0;
          local_ec = 0;
          if (0 < iVar31) {
            do {
              if (pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] != (uint *****)0xffffffff) {
                pppppppuVar3 = (uint *******)
                               (pppppppuVar17[6] +
                               (int)pppppppuVar17[3][*(int *)(piVar33[1] + iVar29 * 4)] * 3);
                local_f4 = (*(code *)(iVar36 + 0x59ac))(&local_f0);
                if (local_f4 != 0) goto LAB_000495c0;
                iVar31 = *piVar33;
              }
              iVar29 = iVar29 + 1;
            } while (iVar29 < iVar31);
          }
          pppppppuVar3 = pppppppuVar17;
          iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,0);
          *(int *)((int)puVar32 + iVar28) = iVar31;
          if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))
          goto LAB_000495c4;
          if ((*(byte *)(iVar31 + 0x34) & 1) == 0) {
            *(int *)((int)puVar13 + iVar28) = iVar31;
            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;
          }
          else {
            pppppppuVar3 = pppppppuVar17;
            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,1);
            *(int *)((int)puVar13 + iVar28) = iVar31;
            if ((iVar31 == 0) && (pcVar40 = *(code **)(puVar39 + 0x2d10c), local_f4 != 0))
            goto LAB_000495c4;
            if ((iVar31 != *(int *)((int)puVar32 + iVar28)) && (1 < (int)pppppppuVar17[0x17])) {
              bVar2 = true;
            }
            pppppppuVar3 = pppppppuVar17;
            iVar31 = (*pcVar8)(&local_f4,pppppppuVar17,&local_f0,2);
            *(int *)((int)puVar13 + iVar28 + iVar4) = iVar31;
            if ((iVar31 == 0) && (local_f4 != 0)) goto LAB_000495c0;
          }
          iVar31 = iVar28 * 8 + iVar25;
          ppiVar9 = ppiVar30;
          do {
            ppiVar10 = ppiVar9 + 1;
            puVar12 = (uint *)(iVar31 + 0xc00);
            iVar31 = iVar31 + 4;
            *ppiVar9 = (int *)((uint)*ppiVar9 | *puVar12);
            ppiVar9 = ppiVar10;
          } while (&local_84 != ppiVar10);
          iVar28 = iVar28 + 4;
          piVar33 = piVar33 + 3;
        } while (iVar4 != iVar28);
        if (bVar2) {
          pppppppuVar3 = (uint *******)0x200;
          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);
          pppppppuVar20[0xc] = ppppppuVar18;
          if (ppppppuVar18 == (uint ******)0x0) goto LAB_000495c0;
          iVar36 = iVar25;
          ppppppuVar35 = ppppppuVar18;
          do {
            piVar33 = *ppiVar30;
            if (piVar33 != (int *)0x0) {
              pppppppuVar3 = (uint *******)0x1;
              ppppppuVar11 = ppppppuVar35;
              do {
                if (((uint)piVar33 & 1) != 0) {
                  iVar28 = 0;
                  puVar19 = puVar13;
                  puVar22 = puVar32;
                  iVar4 = iVar36;
                  if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {
                    do {
                      puVar12 = (uint *)(iVar4 + 0xc20);
                      iVar28 = iVar28 + 1;
                      iVar4 = iVar4 + 0x20;
                    } while (((uint)pppppppuVar3 & *puVar12) == 0);
                    puVar19 = puVar13 + iVar28;
                    puVar22 = puVar32 + iVar28;
                  }
                  *ppppppuVar11 = (uint *****)*puVar22;
                  ppppppuVar11[0x100] = (uint *****)*puVar19;
                }
                piVar33 = (int *)((uint)piVar33 >> 1);
                pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);
                ppppppuVar11 = ppppppuVar11 + 1;
              } while (piVar33 != (int *)0x0);
            }
            ppppppuVar35 = ppppppuVar35 + 0x20;
            ppiVar30 = ppiVar30 + 1;
            iVar36 = iVar36 + 4;
          } while (ppppppuVar18 + 0x100 != ppppppuVar35);
        }
        else {
          pppppppuVar3 = (uint *******)0x100;
          ppppppuVar18 = (uint ******)(**(code **)(puVar39 + 0x2ced8))(4);
          pppppppuVar20[0xb] = ppppppuVar18;
          if (ppppppuVar18 == (uint ******)0x0) {
LAB_000495c0:
            pcVar40 = *(code **)(puVar39 + 0x2d10c);
LAB_000495c4:
            (*pcVar40)(puVar32);
            iVar36 = local_e8;
            goto LAB_000495d4;
          }
          pppppppuVar17 = pppppppuVar17 + 0x18;
          iVar4 = 0;
          iVar36 = iVar25;
          do {
            pppppppuVar3 = (uint *******)0x1;
            iVar28 = iVar4;
            for (piVar33 = *ppiVar30; piVar33 != (int *)0x0; piVar33 = (int *)((uint)piVar33 >> 1))
            {
              if (((uint)piVar33 & 1) != 0) {
                iVar29 = 0;
                iVar31 = iVar36;
                if (((uint)pppppppuVar3 & *(uint *)(iVar36 + 0xc00)) == 0) {
                  do {
                    puVar12 = (uint *)(iVar31 + 0xc20);
                    iVar29 = iVar29 + 1;
                    iVar31 = iVar31 + 0x20;
                  } while (((uint)pppppppuVar3 & *puVar12) == 0);
                  iVar29 = iVar29 * 4;
                }
                if (((uint)pppppppuVar3 & (uint)*pppppppuVar17) == 0) {
                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar32 + iVar29);
                }
                else {
                  ppppppuVar18[iVar28] = *(uint ******)((int)puVar13 + iVar29);
                }
              }
              pppppppuVar3 = (uint *******)((int)pppppppuVar3 << 1);
              iVar28 = iVar28 + 1;
            }
            iVar4 = iVar4 + 0x20;
            ppiVar30 = ppiVar30 + 1;
            pppppppuVar17 = pppppppuVar17 + 1;
            iVar36 = iVar36 + 4;
          } while (iVar4 != 0x100);
        }
        pcVar8 = *(code **)(puVar39 + 0x2d10c);
        if ((int)local_a4 << 0x15 < 0) {
          pppppppuVar3 = (uint *******)0x0;
          do {
            if ((*puVar7 & 0x400) != 0) {
              pppppuVar16 = (uint *****)puVar13[(int)((int)pppppppuVar3 + (int)pppppppuVar37)];
              ppppppuVar18[10] = pppppuVar16;
              if (bVar2) {
                ppppppuVar18[0x10a] = pppppuVar16;
              }
              break;
            }
            pppppppuVar3 = (uint *******)((int)pppppppuVar3 + 1);
            puVar7 = puVar7 + 8;
          } while (pppppppuVar3 != pppppppuVar37);
          pcVar8 = *(code **)(puVar39 + 0x2d10c);
        }
        (*pcVar8)(puVar32);
        (**(code **)(puVar39 + 0x2d10c))(local_e8);
        iVar36 = iVar25;
        do {
          iVar4 = iVar36 + 0xc;
          (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));
          iVar36 = iVar4;
        } while (iVar25 + (int)pppppppuVar37 * 0xc != iVar4);
        (**(code **)(puVar39 + 0x2d10c))(iVar25);
        uVar5 = 1;
        goto LAB_00048f60;
      }
    }
LAB_000495d4:
    (**(code **)(puVar39 + 0x2d10c))(iVar36);
    iVar36 = iVar25;
    do {
      iVar4 = iVar36 + 0xc;
      (**(code **)(puVar39 + 0x2d10c))(*(undefined4 *)(iVar36 + 8));
      iVar36 = iVar4;
    } while (iVar4 != (int)(local_118 + (int)pppppppuVar37) * 4 + iVar25);
    (**(code **)(puVar39 + 0x2d10c))(iVar25);
LAB_00048f5c:
    uVar5 = 0;
    goto LAB_00048f60;
  }
  (**(code **)(puVar39 + 0x2d10c))(iVar25);
  if (pppppppuVar37 != (uint *******)0x0) {
    uVar5 = 0;
    goto LAB_00048f60;
  }
  goto LAB_00049784;
}

