
void dfacomp(char *s,size_t len,dfa *d,_Bool searchflag)

{
  _Bool _Var1;
  _Bool _Var2;
  _Bool _Var3;
  _Bool _Var4;
  char cVar5;
  int iVar6;
  token tVar7;
  size_t sVar8;
  dfa *d_00;
  charclass *pcVar9;
  token *ptVar10;
  uint uVar11;
  int iVar12;
  _func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *p_Var13;
  bool bVar15;
  int iVar14;
  char cVar16;
  dfa *pdVar17;
  size_t sVar18;
  int *piVar19;
  localeinfo *plVar20;
  uchar uVar21;
  undefined4 uVar22;
  uint uVar23;
  char *pcVar24;
  dfa *pdVar25;
  undefined4 uVar26;
  char *pcVar27;
  reg_syntax_t rVar28;
  undefined4 uVar29;
  undefined3 in_register_0000001c;
  uint uVar30;
  char *pcVar31;
  char cVar32;
  undefined *puVar33;
  charclass ccl;
  
  pcVar31 = (char *)CONCAT31(in_register_0000001c,searchflag);
  iVar6 = *(int *)PTR___stack_chk_guard_000424f0;
  (d->lex).ptr = s;
  (d->lex).left = len;
  (d->lex).lasttok = -1;
  (d->lex).laststart = true;
  _Var1 = (d->syntax).syntax_bits_set;
  if (_Var1 == false) {
    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);
                    /* WARNING: Subroutine does not return */
    dfaerror(pcVar31);
  }
  if (d->nregexps == 0) {
    addtok(d,0x10b);
  }
  tVar7 = lex(d);
  (d->parse).tok = tVar7;
  (d->parse).depth = d->depth;
  regexp(d);
  if ((d->parse).tok != -1) {
    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);
                    /* WARNING: Subroutine does not return */
    dfaerror(pcVar31);
  }
  addtok(d,~d->nregexps);
  addtok(d,0x105);
  sVar8 = d->nregexps;
  if (sVar8 != 0) {
    addtok(d,0x106);
    sVar8 = d->nregexps;
  }
  d->nregexps = sVar8 + 1;
  d_00 = dfaalloc();
  pdVar25 = d;
  pdVar17 = d_00;
  do {
    uVar30 = (pdVar25->syntax).syntax_bits;
    _Var2 = (pdVar25->syntax).syntax_bits_set;
    _Var3 = (pdVar25->syntax).case_fold;
    _Var4 = (pdVar25->syntax).anchor;
    uVar21 = (pdVar25->syntax).eolbyte;
    uVar26 = *(undefined4 *)(pdVar25->syntax).sbit;
    uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4);
    (pdVar17->syntax).syntax_bits = uVar30;
    (pdVar17->syntax).syntax_bits_set = _Var2;
    (pdVar17->syntax).case_fold = _Var3;
    (pdVar17->syntax).anchor = _Var4;
    (pdVar17->syntax).eolbyte = uVar21;
    *(undefined4 *)(pdVar17->syntax).sbit = uVar26;
    *(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22;
    pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8);
    pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8);
  } while (pdVar25 != (dfa *)((d->localeinfo).sbctowc + 0xff));
  (pdVar17->syntax).syntax_bits = (pdVar25->syntax).syntax_bits;
  (d_00->localeinfo).multibyte = false;
  d_00->dfaexec =
       (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)
       (PTR_LAB_000421fc + 0x2944);
  d_00->multibyte_prop = (char *)0x0;
  d_00->superset = (dfa *)0x0;
  d_00->states = (dfa_state *)0x0;
  d_00->sindex = 0;
  d_00->constraints = (int *)0x0;
  d_00->separates = (int *)0x0;
  d_00->follows = (position_set *)0x0;
  d_00->tralloc = 0;
  d_00->trans = (state_num **)0x0;
  d_00->fails = (state_num **)0x0;
  d_00->success = (char *)0x0;
  d_00->newlines = (state_num *)0x0;
  uVar23 = d_00->calloc;
  if ((int)(uVar23 << 5) < 0 || uVar23 >> 0x1b != 0) {
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  pcVar9 = (charclass *)xmalloc(uVar23 << 5);
  d_00->charclasses = pcVar9;
  rVar28 = d->cindex << 5;
  if (d->cindex == 0) {
    uVar23 = d->tindex;
  }
  else {
    (*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);
    uVar23 = d->tindex;
  }
  if ((int)(uVar23 << 3) < 0 || uVar23 >> 0x1d != 0) {
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  ptVar10 = (token *)xmalloc(uVar23 << 3);
  d_00->tokens = ptVar10;
  sVar8 = d->tindex;
  d_00->talloc = sVar8 << 1;
  puVar33 = PTR_UINT_00042178;
  if (sVar8 == 0) {
    d_00->tindex = 0;
LAB_0002748c:
    dfafree(d_00);
    (*(code *)PTR_free_000424fc)(d_00);
    pcVar27 = (char *)d->tindex;
  }
  else {
    uVar23 = 0;
    sVar8 = 0;
    cVar16 = '\0';
    do {
      uVar11 = d->tokens[uVar23] - 0x10a;
      if (uVar11 < 10) {
                    /* WARNING: Could not emulate address calculation at 0x0002727c */
                    /* WARNING: Treating indirect jump as call */
        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();
        return;
      }
      sVar18 = sVar8 + 1;
      d_00->tokens[sVar8] = d->tokens[uVar23];
      cVar32 = _Var1;
      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {
        cVar32 = _Var1;
      }
      uVar23 = uVar23 + 1;
      sVar8 = sVar18;
      cVar16 = cVar32;
    } while (uVar23 < d->tindex);
    d_00->tindex = sVar18;
    if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;
    d->superset = d_00;
    pcVar27 = (char *)d->tindex;
  }
  pcVar24 = (char *)0x0;
  if (pcVar27 == (char *)0x0) {
    if ((d->localeinfo).using_utf8 == false) goto LAB_00027418;
LAB_000274c4:
    if (d->superset != (dfa *)0x0) {
      dfafree(d->superset);
      (*(code *)PTR_free_000424fc)(d->superset);
      d->superset = (dfa *)0x0;
    }
  }
  else {
    piVar19 = d->tokens;
    do {
      iVar12 = *piVar19;
      rVar28 = (reg_syntax_t)(iVar12 < 0x112);
      if (0x10d < iVar12) {
        if (rVar28 == 0) {
          if (iVar12 < 0x114) {
LAB_00027344:
            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)
                         (PTR_LAB_000421fc + -0xa60);
            pdVar25 = d->superset;
            goto LAB_00027350;
          }
        }
        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;
      }
      pcVar24 = pcVar24 + 1;
      piVar19 = piVar19 + 1;
    } while (pcVar27 != pcVar24);
    _Var1 = (d->localeinfo).using_utf8;
    if (_Var1 == false) goto LAB_00027418;
    piVar19 = d->tokens;
    pcVar24 = (char *)0x0;
    uVar30 = 0x113;
    rVar28 = 0x10a;
    cVar16 = '\0';
    do {
      iVar12 = *piVar19;
      cVar32 = _Var1;
      if (iVar12 != 0x112) {
        if (iVar12 == 0x113) goto LAB_00027418;
        cVar32 = cVar16;
        if (iVar12 == 0x10a) {
          (*(code *)PTR_abort_0004238c)();
          return;
        }
      }
      pcVar24 = pcVar24 + 1;
      piVar19 = piVar19 + 1;
      cVar16 = cVar32;
    } while (pcVar27 != pcVar24);
    if (cVar32 == '\0') goto LAB_000274c4;
  }
  free_mbdata(d);
  (d->localeinfo).multibyte = false;
  d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)
               (PTR_LAB_000421fc + 0x2944);
  d->fast = true;
LAB_00027418:
  pcVar27 = pcVar31;
  dfaanalyze(d,searchflag);
  pdVar25 = d->superset;
LAB_00027350:
  if (pdVar25 != (dfa *)0x0) {
    d->fast = true;
    dfaanalyze(pdVar25,searchflag);
    pcVar27 = pcVar31;
  }
  if (iVar6 != *(int *)PTR___stack_chk_guard_000424f0) {
    puVar33 = PTR___stack_chk_fail_000424d0;
    (*(code *)PTR___stack_chk_fail_000424d0)();
    (**(code **)(puVar33 + 0x1af18))();
    if (*pcVar27 == '\0') {
      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)
                (*(int *)(puVar33 + 0x1acf8) + 0x2944);
    }
    else {
      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)
                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);
    }
    pdVar25->dfaexec = p_Var13;
    bVar15 = false;
    if (*pcVar27 == '\0') {
      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);
      if (iVar6 == 0) {
        bVar15 = true;
      }
      else {
        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);
        if (iVar12 == 0) {
          bVar15 = true;
        }
        else {
          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);
          bVar15 = iVar6 == 0;
        }
      }
    }
    pdVar25->simple_locale = bVar15;
    plVar20 = &pdVar25->localeinfo;
    pcVar31 = pcVar27 + 0x500;
    do {
      cVar16 = pcVar27[1];
      cVar32 = pcVar27[2];
      cVar5 = pcVar27[3];
      uVar29 = *(undefined4 *)(pcVar27 + 4);
      uVar26 = *(undefined4 *)(pcVar27 + 8);
      uVar22 = *(undefined4 *)(pcVar27 + 0xc);
      plVar20->multibyte = (_Bool)pcVar27[0];
      plVar20->using_utf8 = (_Bool)cVar16;
      plVar20->sbclen[0] = cVar32;
      plVar20->sbclen[1] = cVar5;
      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;
      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;
      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;
      pcVar27 = pcVar27 + 0x10;
      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);
    } while (pcVar27 != pcVar31);
    cVar16 = pcVar27[1];
    cVar32 = pcVar27[2];
    cVar5 = pcVar27[3];
    plVar20->multibyte = (_Bool)pcVar27[0];
    plVar20->using_utf8 = (_Bool)cVar16;
    plVar20->sbclen[0] = cVar32;
    plVar20->sbclen[1] = cVar5;
    pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1);
    pdVar25->canychar = 0xffffffff;
    (pdVar25->lex).cur_mb_len = 1;
    (pdVar25->syntax).syntax_bits_set = true;
    (pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0);
    (pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1);
    uVar21 = '\n';
    if ((uVar30 & 2) != 0) {
      uVar21 = '\0';
    }
    (pdVar25->syntax).eolbyte = uVar21;
    (pdVar25->syntax).syntax_bits = rVar28;
    uVar30 = 0xffffff80;
    iVar6 = *(int *)(puVar33 + 0x1acf8);
    iVar12 = *(int *)(puVar33 + 0x1ac74);
    do {
      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&
         ((pdVar25->syntax).anchor == false)) {
        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';
        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);
        cVar16 = (pdVar25->localeinfo).using_utf8;
      }
      else {
        uVar23 = uVar30 & 0xff;
        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||
           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),
            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {
          (pdVar25->syntax).sbit[uVar23] = '\x01';
          cVar16 = (pdVar25->localeinfo).using_utf8;
        }
        else {
          (pdVar25->syntax).sbit[uVar23] = '\x02';
          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);
          cVar16 = (pdVar25->localeinfo).using_utf8;
        }
      }
      if (cVar16 == '\0') {
        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);
        bVar15 = iVar14 != 0;
      }
      else {
        bVar15 = (uVar30 & 0xc0) != 0x80;
      }
      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;
      uVar30 = uVar30 + 1;
    } while (uVar30 != 0x80);
    return;
  }
  return;
}



void dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)

{
  int iVar1;
  uint uVar2;
  uint *puVar3;
  undefined4 uVar4;
  uint uVar5;
  bool bVar7;
  int iVar6;
  char cVar8;
  int *piVar9;
  undefined1 uVar10;
  uint *puVar11;
  uint uVar12;
  int iVar13;
  uint *puVar14;
  uint uVar15;
  uint uVar16;
  uint *puVar17;
  char cVar18;
  char cVar19;
  undefined *puVar20;
  
  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;
  param_3[0x96] = param_1;
  param_3[0x97] = param_2;
  param_3[0x98] = 0xffffffff;
  *(undefined1 *)(param_3 + 0xa3) = 1;
  cVar8 = *(char *)(param_3 + 1);
  if (cVar8 == '\0') {
    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);
                    /* WARNING: Subroutine does not return */
    dfaerror(uVar4);
  }
  if (param_3[0xab] == 0) {
    FUN_0002041c(param_3,0x10b);
  }
  uVar2 = FUN_000249c0(param_3);
  param_3[0xa4] = uVar2;
  param_3[0xa5] = param_3[0xa9];
  FUN_00025d3c(param_3);
  if (param_3[0xa4] != 0xffffffff) {
    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);
                    /* WARNING: Subroutine does not return */
    dfaerror(uVar4);
  }
  FUN_0002041c(param_3,~param_3[0xab]);
  FUN_0002041c(param_3,0x105);
  uVar2 = param_3[0xab];
  if (uVar2 != 0) {
    FUN_0002041c(param_3,0x106);
    uVar2 = param_3[0xab];
  }
  param_3[0xab] = uVar2 + 1;
  puVar3 = (uint *)dfaalloc();
  puVar14 = param_3;
  puVar11 = puVar3;
  do {
    uVar16 = *puVar14;
    uVar15 = puVar14[1];
    uVar12 = puVar14[2];
    uVar2 = puVar14[3];
    *puVar11 = uVar16;
    puVar11[1] = uVar15;
    puVar11[2] = uVar12;
    puVar11[3] = uVar2;
    puVar14 = puVar14 + 4;
    puVar11 = puVar11 + 4;
  } while (puVar14 != param_3 + 0x20c);
  *puVar11 = *puVar14;
  *(undefined1 *)(puVar3 + 0xcc) = 0;
  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);
  puVar3[0xb4] = 0;
  puVar3[0xb5] = 0;
  puVar3[0xb6] = 0;
  puVar3[0xb7] = 0;
  puVar3[0xbb] = 0;
  puVar3[0xbc] = 0;
  puVar3[0xb9] = 0;
  puVar3[0xbd] = 0;
  puVar3[0xc0] = 0;
  puVar3[0xc1] = 0;
  puVar3[0xc2] = 0;
  puVar3[0xc3] = 0;
  uVar2 = puVar3[0x94];
  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  uVar2 = xmalloc(uVar2 << 5);
  puVar3[0x92] = uVar2;
  uVar12 = param_3[0x93] << 5;
  if (param_3[0x93] == 0) {
    uVar2 = param_3[0xa7];
  }
  else {
    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);
    uVar2 = param_3[0xa7];
  }
  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  uVar2 = xmalloc(uVar2 << 3);
  puVar3[0xa6] = uVar2;
  uVar2 = param_3[0xa7];
  puVar3[0xa8] = uVar2 << 1;
  puVar20 = PTR_UINT_00042178;
  if (uVar2 == 0) {
    puVar3[0xa7] = 0;
LAB_0002748c:
    dfafree(puVar3);
    (*(code *)PTR_free_000424fc)(puVar3);
    puVar14 = (uint *)param_3[0xa7];
  }
  else {
    uVar15 = 0;
    uVar2 = 0;
    cVar19 = '\0';
    do {
      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);
      uVar5 = iVar13 - 0x10a;
      if (uVar5 < 10) {
                    /* WARNING: Could not emulate address calculation at 0x0002727c */
                    /* WARNING: Treating indirect jump as call */
        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();
        return;
      }
      uVar5 = uVar2 + 1;
      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;
      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);
      cVar18 = cVar8;
      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {
        cVar18 = cVar8;
      }
      uVar15 = uVar15 + 1;
      uVar2 = uVar5;
      cVar19 = cVar18;
    } while (uVar15 < param_3[0xa7]);
    puVar3[0xa7] = uVar5;
    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;
    param_3[0xb5] = (uint)puVar3;
    puVar14 = (uint *)param_3[0xa7];
  }
  puVar11 = (uint *)0x0;
  if (puVar14 == (uint *)0x0) {
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;
LAB_000274c4:
    if (param_3[0xb5] != 0) {
      dfafree();
      (*(code *)PTR_free_000424fc)(param_3[0xb5]);
      param_3[0xb5] = 0;
    }
  }
  else {
    piVar9 = (int *)param_3[0xa6];
    do {
      iVar13 = *piVar9;
      uVar12 = (uint)(iVar13 < 0x112);
      if (0x10d < iVar13) {
        if (uVar12 == 0) {
          if (iVar13 < 0x114) {
LAB_00027344:
            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);
            puVar11 = (uint *)param_3[0xb5];
            goto LAB_00027350;
          }
        }
        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;
      }
      puVar11 = (uint *)((int)puVar11 + 1);
      piVar9 = piVar9 + 1;
    } while (puVar14 != puVar11);
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;
    piVar9 = (int *)param_3[0xa6];
    puVar11 = (uint *)0x0;
    uVar16 = 0x113;
    uVar12 = 0x10a;
    cVar8 = '\0';
    do {
      iVar13 = *piVar9;
      cVar19 = *(char *)((int)param_3 + 0x331);
      if (iVar13 != 0x112) {
        if (iVar13 == 0x113) goto LAB_00027418;
        cVar19 = cVar8;
        if (iVar13 == 0x10a) {
          (*(code *)PTR_abort_0004238c)();
          return;
        }
      }
      puVar11 = (uint *)((int)puVar11 + 1);
      piVar9 = piVar9 + 1;
      cVar8 = cVar19;
    } while (puVar14 != puVar11);
    if (cVar19 == '\0') goto LAB_000274c4;
  }
  FUN_000207a4(param_3);
  *(undefined1 *)(param_3 + 0xcc) = 0;
  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);
  *(undefined1 *)(param_3 + 0xac) = 1;
LAB_00027418:
  puVar14 = param_4;
  FUN_00022e74(param_3);
  puVar11 = (uint *)param_3[0xb5];
LAB_00027350:
  if (puVar11 != (uint *)0x0) {
    *(undefined1 *)(param_3 + 0xac) = 1;
    FUN_00022e74();
    puVar14 = param_4;
  }
  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {
    puVar20 = PTR___stack_chk_fail_000424d0;
    (*(code *)PTR___stack_chk_fail_000424d0)();
    (**(code **)(puVar20 + 0x1af18))();
    if (*(char *)puVar14 == '\0') {
      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;
    }
    else {
      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;
    }
    puVar11[0xca] = uVar2;
    bVar7 = false;
    if (*(char *)puVar14 == '\0') {
      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);
      if (iVar1 == 0) {
        bVar7 = true;
      }
      else {
        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);
        if (iVar13 == 0) {
          bVar7 = true;
        }
        else {
          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);
          bVar7 = iVar1 == 0;
        }
      }
    }
    *(bool *)(puVar11 + 0xcb) = bVar7;
    puVar3 = puVar11 + 0xcc;
    puVar17 = puVar14 + 0x140;
    do {
      uVar5 = puVar14[1];
      uVar15 = puVar14[2];
      uVar2 = puVar14[3];
      *puVar3 = *puVar14;
      puVar3[1] = uVar5;
      puVar3[2] = uVar15;
      puVar3[3] = uVar2;
      puVar14 = puVar14 + 4;
      puVar3 = puVar3 + 4;
    } while (puVar14 != puVar17);
    *puVar3 = *puVar14;
    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;
    puVar11[0x95] = 0xffffffff;
    puVar11[0x9d] = 1;
    *(undefined1 *)(puVar11 + 1) = 1;
    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);
    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;
    uVar10 = 10;
    if ((uVar16 & 2) != 0) {
      uVar10 = 0;
    }
    *(undefined1 *)((int)puVar11 + 7) = uVar10;
    *puVar11 = uVar12;
    uVar2 = 0xffffff80;
    iVar1 = *(int *)(puVar20 + 0x1acf8);
    iVar13 = *(int *)(puVar20 + 0x1ac74);
    do {
      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&
         (*(char *)((int)puVar11 + 6) == '\0')) {
        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;
        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);
        cVar8 = *(char *)((int)puVar11 + 0x331);
      }
      else {
        uVar12 = uVar2 & 0xff;
        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||
           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),
            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {
          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;
          cVar8 = *(char *)((int)puVar11 + 0x331);
        }
        else {
          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;
          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);
          cVar8 = *(char *)((int)puVar11 + 0x331);
        }
      }
      if (cVar8 == '\0') {
        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);
        bVar7 = iVar6 != 0;
      }
      else {
        bVar7 = (uVar2 & 0xc0) != 0x80;
      }
      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;
      uVar2 = uVar2 + 1;
    } while (uVar2 != 0x80);
    return;
  }
  return;
}


lui gp,0x2
addiu gp,gp,0x32b0
addu gp,gp,t9
addiu sp,sp,-0x70
sw ra,0x6c(sp)
sw s8,0x68(sp)
sw s7,0x64(sp)
sw s6,0x60(sp)
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw s3,0x54(sp)
sw s2,0x50(sp)
sw s1,0x4c(sp)
sw s0,0x48(sp)
sw gp,0x10(sp)
sw a3,0x7c(sp)
lw v0,-0x7c50(gp)
lw v0,0x0(v0)
sw v0,0x44(sp)
sw a0,0x258(a2)
sw a1,0x25c(a2)
li v0,-0x1
sw v0,0x260(a2)
li v0,0x1
sb v0,0x28c(a2)
lbu s5,0x4(a2)
beq s5,zero,0x000270f0
_lw a1,-0x7fc8(gp)
lw v0,0x2ac(a2)
beq v0,zero,0x0002711c
_or s0,a2,zero
or a0,s0,zero
lw t9,-0x7f44(gp)
addiu t9,t9,0x49c0
bal 0x000249c0
_nop
lw gp,0x10(sp)
sw v0,0x290(s0)
lw v0,0x2a4(s0)
sw v0,0x294(s0)
or a0,s0,zero
lw t9,-0x7f44(gp)
addiu t9,t9,0x5d3c
bal 0x00025d3c
_nop
lw gp,0x10(sp)
lw v1,0x290(s0)
li v0,-0x1
bne v1,v0,0x00027140
_or a0,s0,zero
lw a1,0x2ac(s0)
nor a1,zero,a1
lw s1,-0x7f44(gp)
addiu s1,s1,0x41c
or t9,s1,zero
bal 0x0002041c
_nop
lw gp,0x10(sp)
li a1,0x105
or a0,s0,zero
or t9,s1,zero
bal 0x0002041c
_nop
lw gp,0x10(sp)
lw v0,0x2ac(s0)
bne v0,zero,0x00027170
_li a1,0x106
addiu v0,v0,0x1
sw v0,0x2ac(s0)
lw t9,-0x7ee0(gp)
bal 0x00026e58
_nop
lw gp,0x10(sp)
or s1,v0,zero
or v0,s0,zero
or v1,s1,zero
addiu t0,s0,0x830
lw a3,0x0(v0)
lw a2,0x4(v0)
lw a1,0x8(v0)
lw a0,0xc(v0)
sw a3,0x0(v1)
sw a2,0x4(v1)
sw a1,0x8(v1)
sw a0,0xc(v1)
addiu v0,v0,0x10
bne v0,t0,0x00026fc4
_addiu v1,v1,0x10
lw v0,0x0(v0)
sw v0,0x0(v1)
sb zero,0x330(s1)
lw v0,-0x7f44(gp)
addiu v0,v0,0x2944
sw v0,0x328(s1)
sw zero,0x2d0(s1)
sw zero,0x2d4(s1)
sw zero,0x2d8(s1)
sw zero,0x2dc(s1)
sw zero,0x2ec(s1)
sw zero,0x2f0(s1)
sw zero,0x2e4(s1)
sw zero,0x2f4(s1)
sw zero,0x300(s1)
sw zero,0x304(s1)
sw zero,0x308(s1)
sw zero,0x30c(s1)
lw a0,0x250(s1)
srl v0,a0,0x1b
sltu v1,zero,v0
ext v0,a0,0x1a,0x1
li a1,0x1
movz a1,v1,v0
bne a1,zero,0x0002718c
_lw t9,-0x7f88(gp)
sll a0,a0,0x5
bal 0x0002aa80
_nop
lw gp,0x10(sp)
sw v0,0x248(s1)
lw a2,0x24c(s0)
bne a2,zero,0x00027198
_sll a2,a2,0x5
lw a0,0x29c(s0)
srl s4,a0,0x1d
sltu v0,zero,s4
ext s4,a0,0x1c,0x1
li v1,0x1
movz v1,v0,s4
bne v1,zero,0x000271b8
_or s4,v1,zero
sll a0,a0,0x3
lw t9,-0x7f88(gp)
bal 0x0002aa80
_nop
lw gp,0x10(sp)
sw v0,0x298(s1)
lw v0,0x29c(s0)
sll v1,v0,0x1
beq v0,zero,0x00027484
_sw v1,0x2a0(s1)
or a0,s4,zero
or s6,s4,zero
or s2,zero,zero
or s3,zero,zero
lw v0,-0x7fc8(gp)
addiu v0,v0,0x7c
sw v0,0x18(sp)
addiu s8,sp,0x24
lw v0,-0x7f44(gp)
addiu v0,v0,-0x68c
b 0x00027258
_sw v0,0x1c(sp)
li a2,0x5
addiu a1,a1,-0x258
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x7ed0(gp)
bal 0x0001c7e8
_nop
li a1,0x10b
or a0,a2,zero
lw t9,-0x7f44(gp)
addiu t9,t9,0x41c
bal 0x0002041c
_nop
lw gp,0x10(sp)
b 0x00026f10
_or a0,s0,zero
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x244
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x7ed0(gp)
bal 0x0001c7e8
_nop
or a0,s0,zero
or t9,s1,zero
bal 0x0002041c
_nop
lw gp,0x10(sp)
b 0x00026f9c
_lw v0,0x2ac(s0)
lw t9,-0x7f64(gp)
bal 0x0002af30
_nop
lw a1,0x248(s0)
or a0,v0,zero
lw t9,-0x7c4c(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x0002707c
_lw a0,0x29c(s0)
lw t9,-0x7f64(gp)
bal 0x0002af30
_nop
li v0,-0x1
sw v0,0x24(sp)
sw v0,0x28(sp)
sw v0,0x2c(sp)
sw v0,0x30(sp)
sw v0,0x34(sp)
sw v0,0x38(sp)
sw v0,0x3c(sp)
sw v0,0x40(sp)
or a1,s8,zero
or a0,s1,zero
lw t9,0x1c(sp)
jalr t9
_nop
lw gp,0x10(sp)
sll a0,s2,0x2
lw v1,0x298(s1)
addu v1,v1,a0
addiu v0,v0,0x114
sw v0,0x0(v1)
addiu v1,s2,0x2
lw v0,0x298(s1)
addu v0,v0,a0
li a0,0x102
sw a0,0x4(v0)
lw v0,0x298(s0)
addu s7,v0,s7
lw v0,0x4(s7)
addiu v0,v0,-0x101
sltiu v0,v0,0x3
addu s3,s3,v0
or a0,s5,zero
addiu s3,s3,0x1
lw v0,0x29c(s0)
sltu v0,s3,v0
beq v0,zero,0x000272f0
_or s2,v1,zero
sll s7,s3,0x2
lw v0,0x298(s0)
addu v0,v0,s7
lw a1,0x0(v0)
addiu v0,a1,-0x10a
sltiu v1,v0,0xa
beq v1,zero,0x000272b4
_sll v0,v0,0x2
lw v1,0x18(sp)
addu v0,v1,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lbu v0,0x330(s0)
beq v0,zero,0x000272b4
_addiu v1,s2,0x1
lw v0,0x298(s1)
sll s2,s2,0x2
addu s2,v0,s2
li v0,0x100
b 0x00027244
_sw v0,0x0(s2)
addiu v1,s2,0x1
lw v0,0x298(s1)
sll s2,s2,0x2
addu s2,v0,s2
sw a1,0x0(s2)
lw v0,0x298(s0)
addu s7,v0,s7
lw v0,0x0(s7)
sltiu a1,v0,0x100
bne a1,zero,0x000272e8
_slti v0,v0,0x114
b 0x00027244
_movz s6,s5,v0
b 0x00027244
_or s6,s5,zero
beq s6,zero,0x00027488
_sw v1,0x29c(s1)
bne a0,zero,0x0002730c
_nop
lbu v0,0x330(s0)
beq v0,zero,0x0002748c
_or a0,s1,zero
sw s1,0x2d4(s0)
lw a1,0x29c(s0)
beq a1,zero,0x000274b8
_or a0,zero,zero
lw v1,0x298(s0)
lw v0,0x0(v1)
slti a2,v0,0x10e
bne a2,zero,0x000273c0
_slti a2,v0,0x112
bne a2,zero,0x000273b4
_slti v0,v0,0x114
beq v0,zero,0x000273c4
_addiu a0,a0,0x1
lw v0,-0x7f44(gp)
addiu v0,v0,-0xa60
sw v0,0x328(s0)
lw a0,0x2d4(s0)
beq a0,zero,0x00027374
_li v0,0x1
sb v0,0x2b0(s0)
lw a1,0x7c(sp)
lw t9,-0x7f44(gp)
addiu t9,t9,0x2e74
bal 0x00022e74
_nop
lw gp,0x10(sp)
lw v1,0x44(sp)
lw v0,-0x7c50(gp)
lw v0,0x0(v0)
bne v1,v0,0x000274f8
_lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
lbu v0,0x330(s0)
bne v0,zero,0x00027344
_lw v0,-0x7f44(gp)
addiu a0,a0,0x1
bne a1,a0,0x00027320
_addiu v1,v1,0x4
lbu t1,0x331(s0)
beq t1,zero,0x00027414
_li t0,0x112
lw v1,0x298(s0)
or a0,zero,zero
li a3,0x113
b 0x00027400
_li a2,0x10a
beq v0,a2,0x00027438
_lw t9,-0x7db4(gp)
addiu a0,a0,0x1
beq a1,a0,0x00027448
_addiu v1,v1,0x4
lw v0,0x0(v1)
beq v0,t0,0x00027440
_nop
bne v0,a3,0x000273ec
_nop
lw a1,0x7c(sp)
or a0,s0,zero
lw t9,-0x7f44(gp)
addiu t9,t9,0x2e74
bal 0x00022e74
_nop
lw gp,0x10(sp)
b 0x00027350
_lw a0,0x2d4(s0)
jalr t9
_nop
b 0x000273f4
_or s4,t1,zero
beq s4,zero,0x000274c4
_nop
or a0,s0,zero
lw t9,-0x7f44(gp)
addiu t9,t9,0x7a4
bal 0x000207a4
_nop
lw gp,0x10(sp)
sb zero,0x330(s0)
lw v0,-0x7f44(gp)
addiu v0,v0,0x2944
sw v0,0x328(s0)
li v0,0x1
b 0x00027414
_sb v0,0x2b0(s0)
sw zero,0x29c(s1)
or a0,s1,zero
lw t9,-0x7ecc(gp)
bal 0x00025e50
_nop
lw gp,0x10(sp)
or a0,s1,zero
lw t9,-0x7c44(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00027314
_lw a1,0x29c(s0)
lbu v0,0x331(s0)
beq v0,zero,0x00027418
_lw a1,0x7c(sp)
lw a0,0x2d4(s0)
beq a0,zero,0x00027450
_lw t9,-0x7ecc(gp)
bal 0x00025e50
_nop
lw gp,0x10(sp)
lw a0,0x2d4(s0)
lw t9,-0x7c44(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00027450
_sw zero,0x2d4(s0)
lw t9,-0x7c70(gp)
jalr t9
_nop
(translation_unit "void dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)" identifier (parameter_list "(uint param_1,uint param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined1 uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "char cVar18;" primitive_type identifier ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_000424f0;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_000424f0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "param_3[0x96] = param_1;" (assignment_expression "param_3[0x96] = param_1" (subscript_expression "param_3[0x96]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0x97] = param_2;" (assignment_expression "param_3[0x97] = param_2" (subscript_expression "param_3[0x97]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0x98] = 0xffffffff;" (assignment_expression "param_3[0x98] = 0xffffffff" (subscript_expression "param_3[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_3 + 0xa3) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xa3) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xa3)" * (cast_expression "(undefined1 *)(param_3 + 0xa3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xa3)" ( (binary_expression "param_3 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar8 = *(char *)(param_3 + 1);" (assignment_expression "cVar8 = *(char *)(param_3 + 1)" identifier = (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) ))))) ;) (if_statement "if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -600,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -600" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "dfaerror(uVar4);" (call_expression "dfaerror(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (if_statement "if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }" if (parenthesized_expression "(param_3[0xab] == 0)" ( (binary_expression "param_3[0xab] == 0" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    FUN_0002041c(param_3,0x10b);\n  }" { (expression_statement "FUN_0002041c(param_3,0x10b);" (call_expression "FUN_0002041c(param_3,0x10b)" identifier (argument_list "(param_3,0x10b)" ( identifier , number_literal ))) ;) })) (expression_statement "uVar2 = FUN_000249c0(param_3);" (assignment_expression "uVar2 = FUN_000249c0(param_3)" identifier = (call_expression "FUN_000249c0(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "param_3[0xa4] = uVar2;" (assignment_expression "param_3[0xa4] = uVar2" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0xa5] = param_3[0xa9];" (assignment_expression "param_3[0xa5] = param_3[0xa9]" (subscript_expression "param_3[0xa5]" identifier [ number_literal ]) = (subscript_expression "param_3[0xa9]" identifier [ number_literal ])) ;) (expression_statement "FUN_00025d3c(param_3);" (call_expression "FUN_00025d3c(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (if_statement "if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }" if (parenthesized_expression "(param_3[0xa4] != 0xffffffff)" ( (binary_expression "param_3[0xa4] != 0xffffffff" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(uVar4);\n  }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x244,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x244" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "dfaerror(uVar4);" (call_expression "dfaerror(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "FUN_0002041c(param_3,~param_3[0xab]);" (call_expression "FUN_0002041c(param_3,~param_3[0xab])" identifier (argument_list "(param_3,~param_3[0xab])" ( identifier , (unary_expression "~param_3[0xab]" ~ (subscript_expression "param_3[0xab]" identifier [ number_literal ])) ))) ;) (expression_statement "FUN_0002041c(param_3,0x105);" (call_expression "FUN_0002041c(param_3,0x105)" identifier (argument_list "(param_3,0x105)" ( identifier , number_literal ))) ;) (expression_statement "uVar2 = param_3[0xab];" (assignment_expression "uVar2 = param_3[0xab]" identifier = (subscript_expression "param_3[0xab]" identifier [ number_literal ])) ;) (if_statement "if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }" { (expression_statement "FUN_0002041c(param_3,0x106);" (call_expression "FUN_0002041c(param_3,0x106)" identifier (argument_list "(param_3,0x106)" ( identifier , number_literal ))) ;) (expression_statement "uVar2 = param_3[0xab];" (assignment_expression "uVar2 = param_3[0xab]" identifier = (subscript_expression "param_3[0xab]" identifier [ number_literal ])) ;) })) (expression_statement "param_3[0xab] = uVar2 + 1;" (assignment_expression "param_3[0xab] = uVar2 + 1" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar3 = (uint *)dfaalloc();" (assignment_expression "puVar3 = (uint *)dfaalloc()" identifier = (cast_expression "(uint *)dfaalloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dfaalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar14 = param_3;" (assignment_expression "puVar14 = param_3" identifier = identifier) ;) (expression_statement "puVar11 = puVar3;" (assignment_expression "puVar11 = puVar3" identifier = identifier) ;) (do_statement "do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);" do (compound_statement "{\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  }" { (expression_statement "uVar16 = *puVar14;" (assignment_expression "uVar16 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar15 = puVar14[1];" (assignment_expression "uVar15 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar14[2];" (assignment_expression "uVar12 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar14[3];" (assignment_expression "uVar2 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar11 = uVar16;" (assignment_expression "*puVar11 = uVar16" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "puVar11[1] = uVar15;" (assignment_expression "puVar11[1] = uVar15" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[2] = uVar12;" (assignment_expression "puVar11[2] = uVar12" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[3] = uVar2;" (assignment_expression "puVar11[3] = uVar2" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + 4;" (assignment_expression "puVar14 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 4;" (assignment_expression "puVar11 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != param_3 + 0x20c)" ( (binary_expression "puVar14 != param_3 + 0x20c" identifier != (binary_expression "param_3 + 0x20c" identifier + number_literal)) )) ;) (expression_statement "*puVar11 = *puVar14;" (assignment_expression "*puVar11 = *puVar14" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "*(undefined1 *)(puVar3 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0xcc)" * (cast_expression "(undefined1 *)(puVar3 + 0xcc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xcc)" ( (binary_expression "puVar3 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);" (assignment_expression "puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944)" (subscript_expression "puVar3[0xca]" identifier [ number_literal ]) = (call_expression "(uint)(PTR_LAB_000421fc + 0x2944)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(PTR_LAB_000421fc + 0x2944)" ( (binary_expression "PTR_LAB_000421fc + 0x2944" identifier + number_literal) )))) ;) (expression_statement "puVar3[0xb4] = 0;" (assignment_expression "puVar3[0xb4] = 0" (subscript_expression "puVar3[0xb4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb5] = 0;" (assignment_expression "puVar3[0xb5] = 0" (subscript_expression "puVar3[0xb5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb6] = 0;" (assignment_expression "puVar3[0xb6] = 0" (subscript_expression "puVar3[0xb6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb7] = 0;" (assignment_expression "puVar3[0xb7] = 0" (subscript_expression "puVar3[0xb7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xbb] = 0;" (assignment_expression "puVar3[0xbb] = 0" (subscript_expression "puVar3[0xbb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xbc] = 0;" (assignment_expression "puVar3[0xbc] = 0" (subscript_expression "puVar3[0xbc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb9] = 0;" (assignment_expression "puVar3[0xb9] = 0" (subscript_expression "puVar3[0xb9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xbd] = 0;" (assignment_expression "puVar3[0xbd] = 0" (subscript_expression "puVar3[0xbd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc0] = 0;" (assignment_expression "puVar3[0xc0] = 0" (subscript_expression "puVar3[0xc0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc1] = 0;" (assignment_expression "puVar3[0xc1] = 0" (subscript_expression "puVar3[0xc1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc2] = 0;" (assignment_expression "puVar3[0xc2] = 0" (subscript_expression "puVar3[0xc2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc3] = 0;" (assignment_expression "puVar3[0xc3] = 0" (subscript_expression "puVar3[0xc3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = puVar3[0x94];" (assignment_expression "uVar2 = puVar3[0x94]" identifier = (subscript_expression "puVar3[0x94]" identifier [ number_literal ])) ;) (if_statement "if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" if (parenthesized_expression "((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0)" ( (binary_expression "(int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0" (binary_expression "(int)(uVar2 << 5) < 0" (cast_expression "(int)(uVar2 << 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 5)" ( (binary_expression "uVar2 << 5" identifier << number_literal) ))) < number_literal) || (binary_expression "uVar2 >> 0x1b != 0" (binary_expression "uVar2 >> 0x1b" identifier >> number_literal) != number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar2 = xmalloc(uVar2 << 5);" (assignment_expression "uVar2 = xmalloc(uVar2 << 5)" identifier = (call_expression "xmalloc(uVar2 << 5)" identifier (argument_list "(uVar2 << 5)" ( (binary_expression "uVar2 << 5" identifier << number_literal) )))) ;) (expression_statement "puVar3[0x92] = uVar2;" (assignment_expression "puVar3[0x92] = uVar2" (subscript_expression "puVar3[0x92]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = param_3[0x93] << 5;" (assignment_expression "uVar12 = param_3[0x93] << 5" identifier = (binary_expression "param_3[0x93] << 5" (subscript_expression "param_3[0x93]" identifier [ number_literal ]) << number_literal)) ;) (if_statement "if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" if (parenthesized_expression "(param_3[0x93] == 0)" ( (binary_expression "param_3[0x93] == 0" (subscript_expression "param_3[0x93]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar2 = param_3[0xa7];\n  }" { (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" identifier = (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" else (compound_statement "{\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" { (expression_statement "(*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);" (call_expression "(*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92])" (parenthesized_expression "(*(code *)PTR_memcpy_000424f4)" ( (pointer_expression "*(code *)PTR_memcpy_000424f4" * (cast_expression "(code *)PTR_memcpy_000424f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,param_3[0x92])" ( identifier , (subscript_expression "param_3[0x92]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" identifier = (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) ;) }))) (if_statement "if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" if (parenthesized_expression "((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0)" ( (binary_expression "(int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0" (binary_expression "(int)(uVar2 << 3) < 0" (cast_expression "(int)(uVar2 << 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 3)" ( (binary_expression "uVar2 << 3" identifier << number_literal) ))) < number_literal) || (binary_expression "uVar2 >> 0x1d != 0" (binary_expression "uVar2 >> 0x1d" identifier >> number_literal) != number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar2 = xmalloc(uVar2 << 3);" (assignment_expression "uVar2 = xmalloc(uVar2 << 3)" identifier = (call_expression "xmalloc(uVar2 << 3)" identifier (argument_list "(uVar2 << 3)" ( (binary_expression "uVar2 << 3" identifier << number_literal) )))) ;) (expression_statement "puVar3[0xa6] = uVar2;" (assignment_expression "puVar3[0xa6] = uVar2" (subscript_expression "puVar3[0xa6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" identifier = (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xa8] = uVar2 << 1;" (assignment_expression "puVar3[0xa8] = uVar2 << 1" (subscript_expression "puVar3[0xa8]" identifier [ number_literal ]) = (binary_expression "uVar2 << 1" identifier << number_literal)) ;) (expression_statement "puVar20 = PTR_UINT_00042178;" (assignment_expression "puVar20 = PTR_UINT_00042178" identifier = identifier) ;) (if_statement "if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }" { (expression_statement "puVar3[0xa7] = 0;" (assignment_expression "puVar3[0xa7] = 0" (subscript_expression "puVar3[0xa7]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002748c:\n    dfafree(puVar3);" statement_identifier : (expression_statement "dfafree(puVar3);" (call_expression "dfafree(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;)) (expression_statement "(*(code *)PTR_free_000424fc)(puVar3);" (call_expression "(*(code *)PTR_free_000424fc)(puVar3)" (parenthesized_expression "(*(code *)PTR_free_000424fc)" ( (pointer_expression "*(code *)PTR_free_000424fc" * (cast_expression "(code *)PTR_free_000424fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "puVar14 = (uint *)param_3[0xa7];" (assignment_expression "puVar14 = (uint *)param_3[0xa7]" identifier = (cast_expression "(uint *)param_3[0xa7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" else (compound_statement "{\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "cVar19 = '\0';" (assignment_expression "cVar19 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);" do (compound_statement "{\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    }" { (expression_statement "iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);" (assignment_expression "iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4)" identifier = (pointer_expression "*(int *)(param_3[0xa6] + uVar15 * 4)" * (cast_expression "(int *)(param_3[0xa6] + uVar15 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[0xa6] + uVar15 * 4)" ( (binary_expression "param_3[0xa6] + uVar15 * 4" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar5 = iVar13 - 0x10a;" (assignment_expression "uVar5 = iVar13 - 0x10a" identifier = (binary_expression "iVar13 - 0x10a" identifier - number_literal)) ;) (if_statement "if (uVar5 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }" if (parenthesized_expression "(uVar5 < 10)" ( (binary_expression "uVar5 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }" { comment comment (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" ( (binary_expression "&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar20 + uVar5 * 4 + 0x7c)" * (cast_expression "(int *)(puVar20 + uVar5 * 4 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + uVar5 * 4 + 0x7c)" ( (binary_expression "puVar20 + uVar5 * 4 + 0x7c" (binary_expression "puVar20 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar5 = uVar2 + 1;" (assignment_expression "uVar5 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;" (assignment_expression "*(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13" (pointer_expression "*(int *)(puVar3[0xa6] + uVar2 * 4)" * (cast_expression "(int *)(puVar3[0xa6] + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3[0xa6] + uVar2 * 4)" ( (binary_expression "puVar3[0xa6] + uVar2 * 4" (subscript_expression "puVar3[0xa6]" identifier [ number_literal ]) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);" (assignment_expression "uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_3[0xa6] + uVar15 * 4)" * (cast_expression "(uint *)(param_3[0xa6] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[0xa6] + uVar15 * 4)" ( (binary_expression "param_3[0xa6] + uVar15 * 4" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "cVar18 = cVar8;" (assignment_expression "cVar18 = cVar8" identifier = identifier) ;) (if_statement "if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }" if (parenthesized_expression "((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2))" ( (binary_expression "(0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)" (parenthesized_expression "(0xff < uVar2)" ( (binary_expression "0xff < uVar2" number_literal < identifier) )) && (parenthesized_expression "(cVar18 = cVar19, 0x113 < (int)uVar2)" ( (comma_expression "cVar18 = cVar19, 0x113 < (int)uVar2" (assignment_expression "cVar18 = cVar19" identifier = identifier) , (binary_expression "0x113 < (int)uVar2" number_literal < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n        cVar18 = cVar8;\n      }" { (expression_statement "cVar18 = cVar8;" (assignment_expression "cVar18 = cVar8" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar5;" (assignment_expression "uVar2 = uVar5" identifier = identifier) ;) (expression_statement "cVar19 = cVar18;" (assignment_expression "cVar19 = cVar18" identifier = identifier) ;) }) while (parenthesized_expression "(uVar15 < param_3[0xa7])" ( (binary_expression "uVar15 < param_3[0xa7]" identifier < (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) )) ;) (expression_statement "puVar3[0xa7] = uVar5;" (assignment_expression "puVar3[0xa7] = uVar5" (subscript_expression "puVar3[0xa7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;" if (parenthesized_expression "((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0'))" ( (binary_expression "(cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')" (parenthesized_expression "(cVar18 == '\0')" ( (binary_expression "cVar18 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(param_3 + 0xcc) == '\0')" ( (binary_expression "*(char *)(param_3 + 0xcc) == '\0'" (pointer_expression "*(char *)(param_3 + 0xcc)" * (cast_expression "(char *)(param_3 + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xcc)" ( (binary_expression "param_3 + 0xcc" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0002748c;" goto statement_identifier ;)) (expression_statement "param_3[0xb5] = (uint)puVar3;" (assignment_expression "param_3[0xb5] = (uint)puVar3" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar14 = (uint *)param_3[0xa7];" (assignment_expression "puVar14 = (uint *)param_3[0xa7]" identifier = (cast_expression "(uint *)param_3[0xa7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) }))) (expression_statement "puVar11 = (uint *)0x0;" (assignment_expression "puVar11 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" if (parenthesized_expression "(puVar14 == (uint *)0x0)" ( (binary_expression "puVar14 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }" { (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;" if (parenthesized_expression "(*(char *)((int)param_3 + 0x331) == '\0')" ( (binary_expression "*(char *)((int)param_3 + 0x331) == '\0'" (pointer_expression "*(char *)((int)param_3 + 0x331)" * (cast_expression "(char *)((int)param_3 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x331)" ( (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (labeled_statement "LAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" statement_identifier : (if_statement "if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" if (parenthesized_expression "(param_3[0xb5] != 0)" ( (binary_expression "param_3[0xb5] != 0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" { (expression_statement "dfafree();" (call_expression "dfafree()" identifier (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_free_000424fc)(param_3[0xb5]);" (call_expression "(*(code *)PTR_free_000424fc)(param_3[0xb5])" (parenthesized_expression "(*(code *)PTR_free_000424fc)" ( (pointer_expression "*(code *)PTR_free_000424fc" * (cast_expression "(code *)PTR_free_000424fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3[0xb5])" ( (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) ))) ;) (expression_statement "param_3[0xb5] = 0;" (assignment_expression "param_3[0xb5] = 0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" else (compound_statement "{\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" { (expression_statement "piVar9 = (int *)param_3[0xa6];" (assignment_expression "piVar9 = (int *)param_3[0xa6]" identifier = (cast_expression "(int *)param_3[0xa6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ]))) ;) (do_statement "do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);" do (compound_statement "{\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    }" { (expression_statement "iVar13 = *piVar9;" (assignment_expression "iVar13 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "uVar12 = (uint)(iVar13 < 0x112);" (assignment_expression "uVar12 = (uint)(iVar13 < 0x112)" identifier = (call_expression "(uint)(iVar13 < 0x112)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 < 0x112)" ( (binary_expression "iVar13 < 0x112" identifier < number_literal) )))) ;) (if_statement "if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }" if (parenthesized_expression "(0x10d < iVar13)" ( (binary_expression "0x10d < iVar13" number_literal < identifier) )) (compound_statement "{\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }" { (if_statement "if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }" { (if_statement "if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }" if (parenthesized_expression "(iVar13 < 0x114)" ( (binary_expression "iVar13 < 0x114" identifier < number_literal) )) (compound_statement "{\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }" { (labeled_statement "LAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);" statement_identifier : (expression_statement "param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);" (assignment_expression "param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60)" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (call_expression "(uint)(PTR_LAB_000421fc + -0xa60)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(PTR_LAB_000421fc + -0xa60)" ( (binary_expression "PTR_LAB_000421fc + -0xa60" identifier + number_literal) )))) ;)) (expression_statement "puVar11 = (uint *)param_3[0xb5];" (assignment_expression "puVar11 = (uint *)param_3[0xb5]" identifier = (cast_expression "(uint *)param_3[0xb5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xb5]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00027350;" goto statement_identifier ;) })) }) (else_clause "else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" else (if_statement "if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" if (parenthesized_expression "(*(char *)(param_3 + 0xcc) != '\0')" ( (binary_expression "*(char *)(param_3 + 0xcc) != '\0'" (pointer_expression "*(char *)(param_3 + 0xcc)" * (cast_expression "(char *)(param_3 + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xcc)" ( (binary_expression "param_3 + 0xcc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00027344;" goto statement_identifier ;)))) })) (expression_statement "puVar11 = (uint *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != puVar11)" ( (binary_expression "puVar14 != puVar11" identifier != identifier) )) ;) (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;" if (parenthesized_expression "(*(char *)((int)param_3 + 0x331) == '\0')" ( (binary_expression "*(char *)((int)param_3 + 0x331) == '\0'" (pointer_expression "*(char *)((int)param_3 + 0x331)" * (cast_expression "(char *)((int)param_3 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x331)" ( (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (expression_statement "piVar9 = (int *)param_3[0xa6];" (assignment_expression "piVar9 = (int *)param_3[0xa6]" identifier = (cast_expression "(int *)param_3[0xa6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ]))) ;) (expression_statement "puVar11 = (uint *)0x0;" (assignment_expression "puVar11 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar16 = 0x113;" (assignment_expression "uVar16 = 0x113" identifier = number_literal) ;) (expression_statement "uVar12 = 0x10a;" (assignment_expression "uVar12 = 0x10a" identifier = number_literal) ;) (expression_statement "cVar8 = '\0';" (assignment_expression "cVar8 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);" do (compound_statement "{\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    }" { (expression_statement "iVar13 = *piVar9;" (assignment_expression "iVar13 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "cVar19 = *(char *)((int)param_3 + 0x331);" (assignment_expression "cVar19 = *(char *)((int)param_3 + 0x331)" identifier = (pointer_expression "*(char *)((int)param_3 + 0x331)" * (cast_expression "(char *)((int)param_3 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x331)" ( (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" if (parenthesized_expression "(iVar13 != 0x112)" ( (binary_expression "iVar13 != 0x112" identifier != number_literal) )) (compound_statement "{\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" { (if_statement "if (iVar13 == 0x113) goto LAB_00027418;" if (parenthesized_expression "(iVar13 == 0x113)" ( (binary_expression "iVar13 == 0x113" identifier == number_literal) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (expression_statement "cVar19 = cVar8;" (assignment_expression "cVar19 = cVar8" identifier = identifier) ;) (if_statement "if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" if (parenthesized_expression "(iVar13 == 0x10a)" ( (binary_expression "iVar13 == 0x10a" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" { (expression_statement "(*(code *)PTR_abort_0004238c)();" (call_expression "(*(code *)PTR_abort_0004238c)()" (parenthesized_expression "(*(code *)PTR_abort_0004238c)" ( (pointer_expression "*(code *)PTR_abort_0004238c" * (cast_expression "(code *)PTR_abort_0004238c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) })) (expression_statement "puVar11 = (uint *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "cVar8 = cVar19;" (assignment_expression "cVar8 = cVar19" identifier = identifier) ;) }) while (parenthesized_expression "(puVar14 != puVar11)" ( (binary_expression "puVar14 != puVar11" identifier != identifier) )) ;) (if_statement "if (cVar19 == '\0') goto LAB_000274c4;" if (parenthesized_expression "(cVar19 == '\0')" ( (binary_expression "cVar19 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000274c4;" goto statement_identifier ;)) }))) (expression_statement "FUN_000207a4(param_3);" (call_expression "FUN_000207a4(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_3 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(param_3 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(param_3 + 0xcc)" * (cast_expression "(undefined1 *)(param_3 + 0xcc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xcc)" ( (binary_expression "param_3 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);" (assignment_expression "param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944)" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (call_expression "(uint)(PTR_LAB_000421fc + 0x2944)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(PTR_LAB_000421fc + 0x2944)" ( (binary_expression "PTR_LAB_000421fc + 0x2944" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(param_3 + 0xac) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xac) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xac)" * (cast_expression "(undefined1 *)(param_3 + 0xac)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xac)" ( (binary_expression "param_3 + 0xac" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00027418:\n  puVar14 = param_4;" statement_identifier : (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" identifier = identifier) ;)) (expression_statement "FUN_00022e74(param_3);" (call_expression "FUN_00022e74(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "puVar11 = (uint *)param_3[0xb5];" (assignment_expression "puVar11 = (uint *)param_3[0xb5]" identifier = (cast_expression "(uint *)param_3[0xb5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xb5]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" statement_identifier : (if_statement "if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" if (parenthesized_expression "(puVar11 != (uint *)0x0)" ( (binary_expression "puVar11 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" { (expression_statement "*(undefined1 *)(param_3 + 0xac) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xac) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xac)" * (cast_expression "(undefined1 *)(param_3 + 0xac)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xac)" ( (binary_expression "param_3 + 0xac" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00022e74();" (call_expression "FUN_00022e74()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" identifier = identifier) ;) }))) (if_statement "if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }" if (parenthesized_expression "(iVar1 != *(int *)PTR___stack_chk_guard_000424f0)" ( (binary_expression "iVar1 != *(int *)PTR___stack_chk_guard_000424f0" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }" { (expression_statement "puVar20 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000424d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" * (cast_expression "(code *)PTR___stack_chk_fail_000424d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af18))();" (call_expression "(**(code **)(puVar20 + 0x1af18))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1af18))" ( (pointer_expression "**(code **)(puVar20 + 0x1af18)" * (pointer_expression "*(code **)(puVar20 + 0x1af18)" * (cast_expression "(code **)(puVar20 + 0x1af18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af18)" ( (binary_expression "puVar20 + 0x1af18" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" if (parenthesized_expression "(*(char *)puVar14 == '\0')" ( (binary_expression "*(char *)puVar14 == '\0'" (pointer_expression "*(char *)puVar14" * (cast_expression "(char *)puVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }" { (expression_statement "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;" (assignment_expression "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944" identifier = (binary_expression "*(int *)(puVar20 + 0x1acf8) + 0x2944" (pointer_expression "*(int *)(puVar20 + 0x1acf8)" * (cast_expression "(int *)(puVar20 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1acf8)" ( (binary_expression "puVar20 + 0x1acf8" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" else (compound_statement "{\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" { (expression_statement "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;" (assignment_expression "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0" identifier = (binary_expression "*(int *)(puVar20 + 0x1acf8) + 0x21d0" (pointer_expression "*(int *)(puVar20 + 0x1acf8)" * (cast_expression "(int *)(puVar20 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1acf8)" ( (binary_expression "puVar20 + 0x1acf8" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "puVar11[0xca] = uVar2;" (assignment_expression "puVar11[0xca] = uVar2" (subscript_expression "puVar11[0xca]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (if_statement "if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)puVar14 == '\0')" ( (binary_expression "*(char *)puVar14 == '\0'" (pointer_expression "*(char *)puVar14" * (cast_expression "(char *)puVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }" { (expression_statement "iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);" (assignment_expression "iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aee4))(6,0)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aee4))" ( (pointer_expression "**(code **)(puVar20 + 0x1aee4)" * (pointer_expression "*(code **)(puVar20 + 0x1aee4)" * (cast_expression "(code **)(puVar20 + 0x1aee4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aee4)" ( (binary_expression "puVar20 + 0x1aee4" identifier + number_literal) ))))) )) (argument_list "(6,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar7 = true;\n      }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }) (else_clause "else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" else (compound_statement "{\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" { (expression_statement "iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);" (assignment_expression "iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" identifier = (call_expression "(**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" (parenthesized_expression "(**(code **)(puVar20 + 0x1b014))" ( (pointer_expression "**(code **)(puVar20 + 0x1b014)" * (pointer_expression "*(code **)(puVar20 + 0x1b014)" * (cast_expression "(code **)(puVar20 + 0x1b014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1b014)" ( (binary_expression "puVar20 + 0x1b014" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x1ac74) + -0x234" (pointer_expression "*(int *)(puVar20 + 0x1ac74)" * (cast_expression "(int *)(puVar20 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ac74)" ( (binary_expression "puVar20 + 0x1ac74" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar7 = true;\n        }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }) (else_clause "else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" else (compound_statement "{\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" { (expression_statement "iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);" (assignment_expression "iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" identifier = (call_expression "(**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" (parenthesized_expression "(**(code **)(puVar20 + 0x1b014))" ( (pointer_expression "**(code **)(puVar20 + 0x1b014)" * (pointer_expression "*(code **)(puVar20 + 0x1b014)" * (cast_expression "(code **)(puVar20 + 0x1b014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1b014)" ( (binary_expression "puVar20 + 0x1b014" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x1ac74) + -0x230" (pointer_expression "*(int *)(puVar20 + 0x1ac74)" * (cast_expression "(int *)(puVar20 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ac74)" ( (binary_expression "puVar20 + 0x1ac74" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "bVar7 = iVar1 == 0;" (assignment_expression "bVar7 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) }))) }))) })) (expression_statement "*(bool *)(puVar11 + 0xcb) = bVar7;" (assignment_expression "*(bool *)(puVar11 + 0xcb) = bVar7" (pointer_expression "*(bool *)(puVar11 + 0xcb)" * (cast_expression "(bool *)(puVar11 + 0xcb)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xcb)" ( (binary_expression "puVar11 + 0xcb" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar11 + 0xcc;" (assignment_expression "puVar3 = puVar11 + 0xcc" identifier = (binary_expression "puVar11 + 0xcc" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar14 + 0x140;" (assignment_expression "puVar17 = puVar14 + 0x140" identifier = (binary_expression "puVar14 + 0x140" identifier + number_literal)) ;) (do_statement "do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);" do (compound_statement "{\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    }" { (expression_statement "uVar5 = puVar14[1];" (assignment_expression "uVar5 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar14[2];" (assignment_expression "uVar15 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar14[3];" (assignment_expression "uVar2 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = *puVar14;" (assignment_expression "*puVar3 = *puVar14" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar3[1] = uVar5;" (assignment_expression "puVar3[1] = uVar5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = uVar15;" (assignment_expression "puVar3[2] = uVar15" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + 4;" (assignment_expression "puVar14 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != puVar17)" ( (binary_expression "puVar14 != puVar17" identifier != identifier) )) ;) (expression_statement "*puVar3 = *puVar14;" (assignment_expression "*puVar3 = *puVar14" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "*(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;" (assignment_expression "*(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1" (pointer_expression "*(byte *)(puVar11 + 0xac)" * (cast_expression "(byte *)(puVar11 + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xac)" ( (binary_expression "puVar11 + 0xac" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar11 + 0xcc) ^ 1" (pointer_expression "*(byte *)(puVar11 + 0xcc)" * (cast_expression "(byte *)(puVar11 + 0xcc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xcc)" ( (binary_expression "puVar11 + 0xcc" identifier + number_literal) )))) ^ number_literal)) ;) (expression_statement "puVar11[0x95] = 0xffffffff;" (assignment_expression "puVar11[0x95] = 0xffffffff" (subscript_expression "puVar11[0x95]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar11[0x9d] = 1;" (assignment_expression "puVar11[0x9d] = 1" (subscript_expression "puVar11[0x9d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar11 + 1) = 1;" (assignment_expression "*(undefined1 *)(puVar11 + 1) = 1" (pointer_expression "*(undefined1 *)(puVar11 + 1)" * (cast_expression "(undefined1 *)(puVar11 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 1)" ( (binary_expression "puVar11 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);" (assignment_expression "*(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f)" (pointer_expression "*(byte *)((int)puVar11 + 5)" * (cast_expression "(byte *)((int)puVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 5)" ( (binary_expression "(int)puVar11 + 5" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (call_expression "(byte)((uVar12 << 9) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar12 << 9) >> 0x1f)" ( (binary_expression "(uVar12 << 9) >> 0x1f" (parenthesized_expression "(uVar12 << 9)" ( (binary_expression "uVar12 << 9" identifier << number_literal) )) >> number_literal) )))) ;) (expression_statement "*(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;" (assignment_expression "*(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1" (pointer_expression "*(byte *)((int)puVar11 + 6)" * (cast_expression "(byte *)((int)puVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(byte)uVar16 & 1" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar10 = 10;" (assignment_expression "uVar10 = 10" identifier = number_literal) ;) (if_statement "if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }" if (parenthesized_expression "((uVar16 & 2) != 0)" ( (binary_expression "(uVar16 & 2) != 0" (parenthesized_expression "(uVar16 & 2)" ( (binary_expression "uVar16 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar10 = 0;\n    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "*(undefined1 *)((int)puVar11 + 7) = uVar10;" (assignment_expression "*(undefined1 *)((int)puVar11 + 7) = uVar10" (pointer_expression "*(undefined1 *)((int)puVar11 + 7)" * (cast_expression "(undefined1 *)((int)puVar11 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 7)" ( (binary_expression "(int)puVar11 + 7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*puVar11 = uVar12;" (assignment_expression "*puVar11 = uVar12" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "uVar2 = 0xffffff80;" (assignment_expression "uVar2 = 0xffffff80" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(puVar20 + 0x1acf8);" (assignment_expression "iVar1 = *(int *)(puVar20 + 0x1acf8)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1acf8)" * (cast_expression "(int *)(puVar20 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1acf8)" ( (binary_expression "puVar20 + 0x1acf8" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar20 + 0x1ac74);" (assignment_expression "iVar13 = *(int *)(puVar20 + 0x1ac74)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1ac74)" * (cast_expression "(int *)(puVar20 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ac74)" ( (binary_expression "puVar20 + 0x1ac74" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);" do (compound_statement "{\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    }" { (if_statement "if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" if (parenthesized_expression "(((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0'))" ( (binary_expression "((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')" (parenthesized_expression "((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff))" ( (binary_expression "(uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)" (binary_expression "(uint)*(byte *)((int)puVar11 + 7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar11 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 7)" ( (binary_expression "(int)puVar11 + 7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) )) && (parenthesized_expression "(*(char *)((int)puVar11 + 6) == '\0')" ( (binary_expression "*(char *)((int)puVar11 + 6) == '\0'" (pointer_expression "*(char *)((int)puVar11 + 6)" * (cast_expression "(char *)((int)puVar11 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }" { (expression_statement "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;" (assignment_expression "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4" (pointer_expression "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8)" * (cast_expression "(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + (uVar2 & 0xff) + 8)" ( (binary_expression "(int)puVar11 + (uVar2 & 0xff) + 8" (binary_expression "(int)puVar11 + (uVar2 & 0xff)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);" (call_expression "(*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a)" (parenthesized_expression "(*(code *)(iVar1 + -0xc90))" ( (pointer_expression "*(code *)(iVar1 + -0xc90)" * (cast_expression "(code *)(iVar1 + -0xc90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0xc90)" ( (binary_expression "iVar1 + -0xc90" identifier + number_literal) )))) )) (argument_list "(uVar2 & 0xff,puVar11 + 0x8a)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) , (binary_expression "puVar11 + 0x8a" identifier + number_literal) ))) ;) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" identifier = (pointer_expression "*(char *)((int)puVar11 + 0x331)" * (cast_expression "(char *)((int)puVar11 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x331)" ( (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" else (compound_statement "{\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" { (expression_statement "uVar12 = uVar2 & 0xff;" (assignment_expression "uVar12 = uVar2 & 0xff" identifier = (binary_expression "uVar2 & 0xff" identifier & number_literal)) ;) (if_statement "if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" if (parenthesized_expression "((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f))))" ( (binary_expression "(puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))" (parenthesized_expression "(puVar11[uVar12 + 0x10d] == 0xffffffff)" ( (binary_expression "puVar11[uVar12 + 0x10d] == 0xffffffff" (subscript_expression "puVar11[uVar12 + 0x10d]" identifier [ (binary_expression "uVar12 + 0x10d" identifier + number_literal) ]) == number_literal) )) || (parenthesized_expression "((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))" ( (parenthesized_expression "(piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f))" ( (comma_expression "piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)" (assignment_expression "piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))()" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x1ae70))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x1ae70))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae70))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae70)" * (pointer_expression "*(code **)(puVar20 + 0x1ae70)" * (cast_expression "(code **)(puVar20 + 0x1ae70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae70)" ( (binary_expression "puVar20 + 0x1ae70" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)" (binary_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar9 + uVar12 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar9 + uVar12 * 2)" * (cast_expression "(ushort *)(*piVar9 + uVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + uVar12 * 2)" ( (binary_expression "*piVar9 + uVar12 * 2" (pointer_expression "*piVar9" * identifier) + (binary_expression "uVar12 * 2" identifier * number_literal)) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((uVar2 & 0xff) != 0x5f)" ( (binary_expression "(uVar2 & 0xff) != 0x5f" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" { (expression_statement "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;" (assignment_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 1" (pointer_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8)" * (cast_expression "(undefined1 *)((int)puVar11 + uVar12 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + uVar12 + 8)" ( (binary_expression "(int)puVar11 + uVar12 + 8" (binary_expression "(int)puVar11 + uVar12" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" identifier = (pointer_expression "*(char *)((int)puVar11 + 0x331)" * (cast_expression "(char *)((int)puVar11 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x331)" ( (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" else (compound_statement "{\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" { (expression_statement "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;" (assignment_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 2" (pointer_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8)" * (cast_expression "(undefined1 *)((int)puVar11 + uVar12 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + uVar12 + 8)" ( (binary_expression "(int)puVar11 + uVar12 + 8" (binary_expression "(int)puVar11 + uVar12" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);" (call_expression "(*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82)" (parenthesized_expression "(*(code *)(iVar1 + -0xc90))" ( (pointer_expression "*(code *)(iVar1 + -0xc90)" * (cast_expression "(code *)(iVar1 + -0xc90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0xc90)" ( (binary_expression "iVar1 + -0xc90" identifier + number_literal) )))) )) (argument_list "(uVar12,puVar11 + 0x82)" ( identifier , (binary_expression "puVar11 + 0x82" identifier + number_literal) ))) ;) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" identifier = (pointer_expression "*(char *)((int)puVar11 + 0x331)" * (cast_expression "(char *)((int)puVar11 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x331)" ( (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) }))) (if_statement "if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }" { (expression_statement "iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);" (assignment_expression "iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff)" identifier = (call_expression "(**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af4c))" ( (pointer_expression "**(code **)(puVar20 + 0x1af4c)" * (pointer_expression "*(code **)(puVar20 + 0x1af4c)" * (cast_expression "(code **)(puVar20 + 0x1af4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af4c)" ( (binary_expression "puVar20 + 0x1af4c" identifier + number_literal) ))))) )) (argument_list "(iVar13 + -0x228,uVar2 & 0xff)" ( (binary_expression "iVar13 + -0x228" identifier + number_literal) , (binary_expression "uVar2 & 0xff" identifier & number_literal) )))) ;) (expression_statement "bVar7 = iVar6 != 0;" (assignment_expression "bVar7 = iVar6 != 0" identifier = (binary_expression "iVar6 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" else (compound_statement "{\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" { (expression_statement "bVar7 = (uVar2 & 0xc0) != 0x80;" (assignment_expression "bVar7 = (uVar2 & 0xc0) != 0x80" identifier = (binary_expression "(uVar2 & 0xc0) != 0x80" (parenthesized_expression "(uVar2 & 0xc0)" ( (binary_expression "uVar2 & 0xc0" identifier & number_literal) )) != number_literal)) ;) }))) (expression_statement "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;" (assignment_expression "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7" (pointer_expression "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108)" * (cast_expression "(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + (uVar2 & 0xff) + 0x108)" ( (binary_expression "(int)puVar11 + (uVar2 & 0xff) + 0x108" (binary_expression "(int)puVar11 + (uVar2 & 0xff)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0x80)" ( (binary_expression "uVar2 != 0x80" identifier != number_literal) )) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void dfacomp(char *s,size_t len,dfa *d,_Bool searchflag)\n\n{\n  _Bool _Var1;\n  _Bool _Var2;\n  _Bool _Var3;\n  _Bool _Var4;\n  char cVar5;\n  int iVar6;\n  token tVar7;\n  size_t sVar8;\n  dfa *d_00;\n  charclass *pcVar9;\n  token *ptVar10;\n  uint uVar11;\n  int iVar12;\n  _func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *p_Var13;\n  bool bVar15;\n  int iVar14;\n  char cVar16;\n  dfa *pdVar17;\n  size_t sVar18;\n  int *piVar19;\n  localeinfo *plVar20;\n  uchar uVar21;\n  undefined4 uVar22;\n  uint uVar23;\n  char *pcVar24;\n  dfa *pdVar25;\n  undefined4 uVar26;\n  char *pcVar27;\n  reg_syntax_t rVar28;\n  undefined4 uVar29;\n  undefined3 in_register_0000001c;\n  uint uVar30;\n  char *pcVar31;\n  char cVar32;\n  undefined *puVar33;\n  charclass ccl;\n  \n  pcVar31 = (char *)CONCAT31(in_register_0000001c,searchflag);\n  iVar6 = *(int *)PTR___stack_chk_guard_000424f0;\n  (d->lex).ptr = s;\n  (d->lex).left = len;\n  (d->lex).lasttok = -1;\n  (d->lex).laststart = true;\n  _Var1 = (d->syntax).syntax_bits_set;\n  if (_Var1 == false) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }\n  if (d->nregexps == 0) {\n    addtok(d,0x10b);\n  }\n  tVar7 = lex(d);\n  (d->parse).tok = tVar7;\n  (d->parse).depth = d->depth;\n  regexp(d);\n  if ((d->parse).tok != -1) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }\n  addtok(d,~d->nregexps);\n  addtok(d,0x105);\n  sVar8 = d->nregexps;\n  if (sVar8 != 0) {\n    addtok(d,0x106);\n    sVar8 = d->nregexps;\n  }\n  d->nregexps = sVar8 + 1;\n  d_00 = dfaalloc();\n  pdVar25 = d;\n  pdVar17 = d_00;\n  do {\n    uVar30 = (pdVar25->syntax).syntax_bits;\n    _Var2 = (pdVar25->syntax).syntax_bits_set;\n    _Var3 = (pdVar25->syntax).case_fold;\n    _Var4 = (pdVar25->syntax).anchor;\n    uVar21 = (pdVar25->syntax).eolbyte;\n    uVar26 = *(undefined4 *)(pdVar25->syntax).sbit;\n    uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4);\n    (pdVar17->syntax).syntax_bits = uVar30;\n    (pdVar17->syntax).syntax_bits_set = _Var2;\n    (pdVar17->syntax).case_fold = _Var3;\n    (pdVar17->syntax).anchor = _Var4;\n    (pdVar17->syntax).eolbyte = uVar21;\n    *(undefined4 *)(pdVar17->syntax).sbit = uVar26;\n    *(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22;\n    pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8);\n    pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8);\n  } while (pdVar25 != (dfa *)((d->localeinfo).sbctowc + 0xff));\n  (pdVar17->syntax).syntax_bits = (pdVar25->syntax).syntax_bits;\n  (d_00->localeinfo).multibyte = false;\n  d_00->dfaexec =\n       (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n       (PTR_LAB_000421fc + 0x2944);\n  d_00->multibyte_prop = (char *)0x0;\n  d_00->superset = (dfa *)0x0;\n  d_00->states = (dfa_state *)0x0;\n  d_00->sindex = 0;\n  d_00->constraints = (int *)0x0;\n  d_00->separates = (int *)0x0;\n  d_00->follows = (position_set *)0x0;\n  d_00->tralloc = 0;\n  d_00->trans = (state_num **)0x0;\n  d_00->fails = (state_num **)0x0;\n  d_00->success = (char *)0x0;\n  d_00->newlines = (state_num *)0x0;\n  uVar23 = d_00->calloc;\n  if ((int)(uVar23 << 5) < 0 || uVar23 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  pcVar9 = (charclass *)xmalloc(uVar23 << 5);\n  d_00->charclasses = pcVar9;\n  rVar28 = d->cindex << 5;\n  if (d->cindex == 0) {\n    uVar23 = d->tindex;\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);\n    uVar23 = d->tindex;\n  }\n  if ((int)(uVar23 << 3) < 0 || uVar23 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  ptVar10 = (token *)xmalloc(uVar23 << 3);\n  d_00->tokens = ptVar10;\n  sVar8 = d->tindex;\n  d_00->talloc = sVar8 << 1;\n  puVar33 = PTR_UINT_00042178;\n  if (sVar8 == 0) {\n    d_00->tindex = 0;\nLAB_0002748c:\n    dfafree(d_00);\n    (*(code *)PTR_free_000424fc)(d_00);\n    pcVar27 = (char *)d->tindex;\n  }\n  else {\n    uVar23 = 0;\n    sVar8 = 0;\n    cVar16 = '\0';\n    do {\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    } while (uVar23 < d->tindex);\n    d_00->tindex = sVar18;\n    if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;\n    d->superset = d_00;\n    pcVar27 = (char *)d->tindex;\n  }\n  pcVar24 = (char *)0x0;\n  if (pcVar27 == (char *)0x0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00027418;\nLAB_000274c4:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    piVar19 = d->tokens;\n    do {\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    } while (pcVar27 != pcVar24);\n    _Var1 = (d->localeinfo).using_utf8;\n    if (_Var1 == false) goto LAB_00027418;\n    piVar19 = d->tokens;\n    pcVar24 = (char *)0x0;\n    uVar30 = 0x113;\n    rVar28 = 0x10a;\n    cVar16 = '\0';\n    do {\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    } while (pcVar27 != pcVar24);\n    if (cVar32 == '\0') goto LAB_000274c4;\n  }\n  free_mbdata(d);\n  (d->localeinfo).multibyte = false;\n  d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n               (PTR_LAB_000421fc + 0x2944);\n  d->fast = true;\nLAB_00027418:\n  pcVar27 = pcVar31;\n  dfaanalyze(d,searchflag);\n  pdVar25 = d->superset;\nLAB_00027350:\n  if (pdVar25 != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(pdVar25,searchflag);\n    pcVar27 = pcVar31;\n  }\n  if (iVar6 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar33 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar33 + 0x1af18))();\n    if (*pcVar27 == '\0') {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);\n    }\n    else {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }\n    pdVar25->dfaexec = p_Var13;\n    bVar15 = false;\n    if (*pcVar27 == '\0') {\n      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);\n      if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }\n    }\n    pdVar25->simple_locale = bVar15;\n    plVar20 = &pdVar25->localeinfo;\n    pcVar31 = pcVar27 + 0x500;\n    do {\n      cVar16 = pcVar27[1];\n      cVar32 = pcVar27[2];\n      cVar5 = pcVar27[3];\n      uVar29 = *(undefined4 *)(pcVar27 + 4);\n      uVar26 = *(undefined4 *)(pcVar27 + 8);\n      uVar22 = *(undefined4 *)(pcVar27 + 0xc);\n      plVar20->multibyte = (_Bool)pcVar27[0];\n      plVar20->using_utf8 = (_Bool)cVar16;\n      plVar20->sbclen[0] = cVar32;\n      plVar20->sbclen[1] = cVar5;\n      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;\n      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;\n      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;\n      pcVar27 = pcVar27 + 0x10;\n      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);\n    } while (pcVar27 != pcVar31);\n    cVar16 = pcVar27[1];\n    cVar32 = pcVar27[2];\n    cVar5 = pcVar27[3];\n    plVar20->multibyte = (_Bool)pcVar27[0];\n    plVar20->using_utf8 = (_Bool)cVar16;\n    plVar20->sbclen[0] = cVar32;\n    plVar20->sbclen[1] = cVar5;\n    pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1);\n    pdVar25->canychar = 0xffffffff;\n    (pdVar25->lex).cur_mb_len = 1;\n    (pdVar25->syntax).syntax_bits_set = true;\n    (pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0);\n    (pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1);\n    uVar21 = '\n';\n    if ((uVar30 & 2) != 0) {\n      uVar21 = '\0';\n    }\n    (pdVar25->syntax).eolbyte = uVar21;\n    (pdVar25->syntax).syntax_bits = rVar28;\n    uVar30 = 0xffffff80;\n    iVar6 = *(int *)(puVar33 + 0x1acf8);\n    iVar12 = *(int *)(puVar33 + 0x1ac74);\n    do {\n      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }\n      if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }\n      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;\n      uVar30 = uVar30 + 1;\n    } while (uVar30 != 0x80);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void dfacomp(char *s,size_t len,dfa *d,_Bool searchflag)\n\n{\n  _Bool _Var1;\n  _Bool _Var2;\n  _Bool _Var3;\n  _Bool _Var4;\n  char cVar5;\n  int iVar6;\n  token tVar7;\n  size_t sVar8;\n  dfa *d_00;\n  charclass *pcVar9;\n  token *ptVar10;\n  uint uVar11;\n  int iVar12;\n  _func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *p_Var13;\n  bool bVar15;\n  int iVar14;\n  char cVar16;\n  dfa *pdVar17;\n  size_t sVar18;\n  int *piVar19;\n  localeinfo *plVar20;\n  uchar uVar21;\n  undefined4 uVar22;\n  uint uVar23;\n  char *pcVar24;\n  dfa *pdVar25;\n  undefined4 uVar26;\n  char *pcVar27;\n  reg_syntax_t rVar28;\n  undefined4 uVar29;\n  undefined3 in_register_0000001c;\n  uint uVar30;\n  char *pcVar31;\n  char cVar32;\n  undefined *puVar33;\n  charclass ccl;\n  \n  pcVar31 = (char *)CONCAT31(in_register_0000001c,searchflag);\n  iVar6 = *(int *)PTR___stack_chk_guard_000424f0;\n  (d->lex).ptr = s;\n  (d->lex).left = len;\n  (d->lex).lasttok = -1;\n  (d->lex).laststart = true;\n  _Var1 = (d->syntax).syntax_bits_set;\n  if (_Var1 == false) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }\n  if (d->nregexps == 0) {\n    addtok(d,0x10b);\n  }\n  tVar7 = lex(d);\n  (d->parse).tok = tVar7;\n  (d->parse).depth = d->depth;\n  regexp(d);\n  if ((d->parse).tok != -1) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }\n  addtok(d,~d->nregexps);\n  addtok(d,0x105);\n  sVar8 = d->nregexps;\n  if (sVar8 != 0) {\n    addtok(d,0x106);\n    sVar8 = d->nregexps;\n  }\n  d->nregexps = sVar8 + 1;\n  d_00 = dfaalloc();\n  pdVar25 = d;\n  pdVar17 = d_00;\n  do {\n    uVar30 = (pdVar25->syntax).syntax_bits;\n    _Var2 = (pdVar25->syntax).syntax_bits_set;\n    _Var3 = (pdVar25->syntax).case_fold;\n    _Var4 = (pdVar25->syntax).anchor;\n    uVar21 = (pdVar25->syntax).eolbyte;\n    uVar26 = *(undefined4 *)(pdVar25->syntax).sbit;\n    uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4);\n    (pdVar17->syntax).syntax_bits = uVar30;\n    (pdVar17->syntax).syntax_bits_set = _Var2;\n    (pdVar17->syntax).case_fold = _Var3;\n    (pdVar17->syntax).anchor = _Var4;\n    (pdVar17->syntax).eolbyte = uVar21;\n    *(undefined4 *)(pdVar17->syntax).sbit = uVar26;\n    *(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22;\n    pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8);\n    pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8);\n  } while (pdVar25 != (dfa *)((d->localeinfo).sbctowc + 0xff));\n  (pdVar17->syntax).syntax_bits = (pdVar25->syntax).syntax_bits;\n  (d_00->localeinfo).multibyte = false;\n  d_00->dfaexec =\n       (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n       (PTR_LAB_000421fc + 0x2944);\n  d_00->multibyte_prop = (char *)0x0;\n  d_00->superset = (dfa *)0x0;\n  d_00->states = (dfa_state *)0x0;\n  d_00->sindex = 0;\n  d_00->constraints = (int *)0x0;\n  d_00->separates = (int *)0x0;\n  d_00->follows = (position_set *)0x0;\n  d_00->tralloc = 0;\n  d_00->trans = (state_num **)0x0;\n  d_00->fails = (state_num **)0x0;\n  d_00->success = (char *)0x0;\n  d_00->newlines = (state_num *)0x0;\n  uVar23 = d_00->calloc;\n  if ((int)(uVar23 << 5) < 0 || uVar23 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  pcVar9 = (charclass *)xmalloc(uVar23 << 5);\n  d_00->charclasses = pcVar9;\n  rVar28 = d->cindex << 5;\n  if (d->cindex == 0) {\n    uVar23 = d->tindex;\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);\n    uVar23 = d->tindex;\n  }\n  if ((int)(uVar23 << 3) < 0 || uVar23 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  ptVar10 = (token *)xmalloc(uVar23 << 3);\n  d_00->tokens = ptVar10;\n  sVar8 = d->tindex;\n  d_00->talloc = sVar8 << 1;\n  puVar33 = PTR_UINT_00042178;\n  if (sVar8 == 0) {\n    d_00->tindex = 0;\nLAB_0002748c:\n    dfafree(d_00);\n    (*(code *)PTR_free_000424fc)(d_00);\n    pcVar27 = (char *)d->tindex;\n  }\n  else {\n    uVar23 = 0;\n    sVar8 = 0;\n    cVar16 = '\0';\n    do {\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    } while (uVar23 < d->tindex);\n    d_00->tindex = sVar18;\n    if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;\n    d->superset = d_00;\n    pcVar27 = (char *)d->tindex;\n  }\n  pcVar24 = (char *)0x0;\n  if (pcVar27 == (char *)0x0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00027418;\nLAB_000274c4:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    piVar19 = d->tokens;\n    do {\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    } while (pcVar27 != pcVar24);\n    _Var1 = (d->localeinfo).using_utf8;\n    if (_Var1 == false) goto LAB_00027418;\n    piVar19 = d->tokens;\n    pcVar24 = (char *)0x0;\n    uVar30 = 0x113;\n    rVar28 = 0x10a;\n    cVar16 = '\0';\n    do {\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    } while (pcVar27 != pcVar24);\n    if (cVar32 == '\0') goto LAB_000274c4;\n  }\n  free_mbdata(d);\n  (d->localeinfo).multibyte = false;\n  d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n               (PTR_LAB_000421fc + 0x2944);\n  d->fast = true;\nLAB_00027418:\n  pcVar27 = pcVar31;\n  dfaanalyze(d,searchflag);\n  pdVar25 = d->superset;\nLAB_00027350:\n  if (pdVar25 != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(pdVar25,searchflag);\n    pcVar27 = pcVar31;\n  }\n  if (iVar6 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar33 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar33 + 0x1af18))();\n    if (*pcVar27 == '\0') {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);\n    }\n    else {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }\n    pdVar25->dfaexec = p_Var13;\n    bVar15 = false;\n    if (*pcVar27 == '\0') {\n      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);\n      if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }\n    }\n    pdVar25->simple_locale = bVar15;\n    plVar20 = &pdVar25->localeinfo;\n    pcVar31 = pcVar27 + 0x500;\n    do {\n      cVar16 = pcVar27[1];\n      cVar32 = pcVar27[2];\n      cVar5 = pcVar27[3];\n      uVar29 = *(undefined4 *)(pcVar27 + 4);\n      uVar26 = *(undefined4 *)(pcVar27 + 8);\n      uVar22 = *(undefined4 *)(pcVar27 + 0xc);\n      plVar20->multibyte = (_Bool)pcVar27[0];\n      plVar20->using_utf8 = (_Bool)cVar16;\n      plVar20->sbclen[0] = cVar32;\n      plVar20->sbclen[1] = cVar5;\n      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;\n      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;\n      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;\n      pcVar27 = pcVar27 + 0x10;\n      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);\n    } while (pcVar27 != pcVar31);\n    cVar16 = pcVar27[1];\n    cVar32 = pcVar27[2];\n    cVar5 = pcVar27[3];\n    plVar20->multibyte = (_Bool)pcVar27[0];\n    plVar20->using_utf8 = (_Bool)cVar16;\n    plVar20->sbclen[0] = cVar32;\n    plVar20->sbclen[1] = cVar5;\n    pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1);\n    pdVar25->canychar = 0xffffffff;\n    (pdVar25->lex).cur_mb_len = 1;\n    (pdVar25->syntax).syntax_bits_set = true;\n    (pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0);\n    (pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1);\n    uVar21 = '\n';\n    if ((uVar30 & 2) != 0) {\n      uVar21 = '\0';\n    }\n    (pdVar25->syntax).eolbyte = uVar21;\n    (pdVar25->syntax).syntax_bits = rVar28;\n    uVar30 = 0xffffff80;\n    iVar6 = *(int *)(puVar33 + 0x1acf8);\n    iVar12 = *(int *)(puVar33 + 0x1ac74);\n    do {\n      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }\n      if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }\n      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;\n      uVar30 = uVar30 + 1;\n    } while (uVar30 != 0x80);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "dfacomp(char *s,size_t len,dfa *d,_Bool searchflag)" identifier (parameter_list "(char *s,size_t len,dfa *d,_Bool searchflag)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "size_t len" primitive_type identifier) , (parameter_declaration "dfa *d" type_identifier (pointer_declarator "*d" * identifier)) , (parameter_declaration "_Bool searchflag" type_identifier identifier) ))) (compound_statement "{\n  _Bool _Var1;\n  _Bool _Var2;\n  _Bool _Var3;\n  _Bool _Var4;\n  char cVar5;\n  int iVar6;\n  token tVar7;\n  size_t sVar8;\n  dfa *d_00;\n  charclass *pcVar9;\n  token *ptVar10;\n  uint uVar11;\n  int iVar12;\n  _func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *p_Var13;\n  bool bVar15;\n  int iVar14;\n  char cVar16;\n  dfa *pdVar17;\n  size_t sVar18;\n  int *piVar19;\n  localeinfo *plVar20;\n  uchar uVar21;\n  undefined4 uVar22;\n  uint uVar23;\n  char *pcVar24;\n  dfa *pdVar25;\n  undefined4 uVar26;\n  char *pcVar27;\n  reg_syntax_t rVar28;\n  undefined4 uVar29;\n  undefined3 in_register_0000001c;\n  uint uVar30;\n  char *pcVar31;\n  char cVar32;\n  undefined *puVar33;\n  charclass ccl;\n  \n  pcVar31 = (char *)CONCAT31(in_register_0000001c,searchflag);\n  iVar6 = *(int *)PTR___stack_chk_guard_000424f0;\n  (d->lex).ptr = s;\n  (d->lex).left = len;\n  (d->lex).lasttok = -1;\n  (d->lex).laststart = true;\n  _Var1 = (d->syntax).syntax_bits_set;\n  if (_Var1 == false) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }\n  if (d->nregexps == 0) {\n    addtok(d,0x10b);\n  }\n  tVar7 = lex(d);\n  (d->parse).tok = tVar7;\n  (d->parse).depth = d->depth;\n  regexp(d);\n  if ((d->parse).tok != -1) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }\n  addtok(d,~d->nregexps);\n  addtok(d,0x105);\n  sVar8 = d->nregexps;\n  if (sVar8 != 0) {\n    addtok(d,0x106);\n    sVar8 = d->nregexps;\n  }\n  d->nregexps = sVar8 + 1;\n  d_00 = dfaalloc();\n  pdVar25 = d;\n  pdVar17 = d_00;\n  do {\n    uVar30 = (pdVar25->syntax).syntax_bits;\n    _Var2 = (pdVar25->syntax).syntax_bits_set;\n    _Var3 = (pdVar25->syntax).case_fold;\n    _Var4 = (pdVar25->syntax).anchor;\n    uVar21 = (pdVar25->syntax).eolbyte;\n    uVar26 = *(undefined4 *)(pdVar25->syntax).sbit;\n    uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4);\n    (pdVar17->syntax).syntax_bits = uVar30;\n    (pdVar17->syntax).syntax_bits_set = _Var2;\n    (pdVar17->syntax).case_fold = _Var3;\n    (pdVar17->syntax).anchor = _Var4;\n    (pdVar17->syntax).eolbyte = uVar21;\n    *(undefined4 *)(pdVar17->syntax).sbit = uVar26;\n    *(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22;\n    pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8);\n    pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8);\n  } while (pdVar25 != (dfa *)((d->localeinfo).sbctowc + 0xff));\n  (pdVar17->syntax).syntax_bits = (pdVar25->syntax).syntax_bits;\n  (d_00->localeinfo).multibyte = false;\n  d_00->dfaexec =\n       (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n       (PTR_LAB_000421fc + 0x2944);\n  d_00->multibyte_prop = (char *)0x0;\n  d_00->superset = (dfa *)0x0;\n  d_00->states = (dfa_state *)0x0;\n  d_00->sindex = 0;\n  d_00->constraints = (int *)0x0;\n  d_00->separates = (int *)0x0;\n  d_00->follows = (position_set *)0x0;\n  d_00->tralloc = 0;\n  d_00->trans = (state_num **)0x0;\n  d_00->fails = (state_num **)0x0;\n  d_00->success = (char *)0x0;\n  d_00->newlines = (state_num *)0x0;\n  uVar23 = d_00->calloc;\n  if ((int)(uVar23 << 5) < 0 || uVar23 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  pcVar9 = (charclass *)xmalloc(uVar23 << 5);\n  d_00->charclasses = pcVar9;\n  rVar28 = d->cindex << 5;\n  if (d->cindex == 0) {\n    uVar23 = d->tindex;\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);\n    uVar23 = d->tindex;\n  }\n  if ((int)(uVar23 << 3) < 0 || uVar23 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  ptVar10 = (token *)xmalloc(uVar23 << 3);\n  d_00->tokens = ptVar10;\n  sVar8 = d->tindex;\n  d_00->talloc = sVar8 << 1;\n  puVar33 = PTR_UINT_00042178;\n  if (sVar8 == 0) {\n    d_00->tindex = 0;\nLAB_0002748c:\n    dfafree(d_00);\n    (*(code *)PTR_free_000424fc)(d_00);\n    pcVar27 = (char *)d->tindex;\n  }\n  else {\n    uVar23 = 0;\n    sVar8 = 0;\n    cVar16 = '\0';\n    do {\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    } while (uVar23 < d->tindex);\n    d_00->tindex = sVar18;\n    if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;\n    d->superset = d_00;\n    pcVar27 = (char *)d->tindex;\n  }\n  pcVar24 = (char *)0x0;\n  if (pcVar27 == (char *)0x0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00027418;\nLAB_000274c4:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    piVar19 = d->tokens;\n    do {\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    } while (pcVar27 != pcVar24);\n    _Var1 = (d->localeinfo).using_utf8;\n    if (_Var1 == false) goto LAB_00027418;\n    piVar19 = d->tokens;\n    pcVar24 = (char *)0x0;\n    uVar30 = 0x113;\n    rVar28 = 0x10a;\n    cVar16 = '\0';\n    do {\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    } while (pcVar27 != pcVar24);\n    if (cVar32 == '\0') goto LAB_000274c4;\n  }\n  free_mbdata(d);\n  (d->localeinfo).multibyte = false;\n  d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n               (PTR_LAB_000421fc + 0x2944);\n  d->fast = true;\nLAB_00027418:\n  pcVar27 = pcVar31;\n  dfaanalyze(d,searchflag);\n  pdVar25 = d->superset;\nLAB_00027350:\n  if (pdVar25 != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(pdVar25,searchflag);\n    pcVar27 = pcVar31;\n  }\n  if (iVar6 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar33 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar33 + 0x1af18))();\n    if (*pcVar27 == '\0') {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);\n    }\n    else {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }\n    pdVar25->dfaexec = p_Var13;\n    bVar15 = false;\n    if (*pcVar27 == '\0') {\n      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);\n      if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }\n    }\n    pdVar25->simple_locale = bVar15;\n    plVar20 = &pdVar25->localeinfo;\n    pcVar31 = pcVar27 + 0x500;\n    do {\n      cVar16 = pcVar27[1];\n      cVar32 = pcVar27[2];\n      cVar5 = pcVar27[3];\n      uVar29 = *(undefined4 *)(pcVar27 + 4);\n      uVar26 = *(undefined4 *)(pcVar27 + 8);\n      uVar22 = *(undefined4 *)(pcVar27 + 0xc);\n      plVar20->multibyte = (_Bool)pcVar27[0];\n      plVar20->using_utf8 = (_Bool)cVar16;\n      plVar20->sbclen[0] = cVar32;\n      plVar20->sbclen[1] = cVar5;\n      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;\n      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;\n      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;\n      pcVar27 = pcVar27 + 0x10;\n      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);\n    } while (pcVar27 != pcVar31);\n    cVar16 = pcVar27[1];\n    cVar32 = pcVar27[2];\n    cVar5 = pcVar27[3];\n    plVar20->multibyte = (_Bool)pcVar27[0];\n    plVar20->using_utf8 = (_Bool)cVar16;\n    plVar20->sbclen[0] = cVar32;\n    plVar20->sbclen[1] = cVar5;\n    pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1);\n    pdVar25->canychar = 0xffffffff;\n    (pdVar25->lex).cur_mb_len = 1;\n    (pdVar25->syntax).syntax_bits_set = true;\n    (pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0);\n    (pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1);\n    uVar21 = '\n';\n    if ((uVar30 & 2) != 0) {\n      uVar21 = '\0';\n    }\n    (pdVar25->syntax).eolbyte = uVar21;\n    (pdVar25->syntax).syntax_bits = rVar28;\n    uVar30 = 0xffffff80;\n    iVar6 = *(int *)(puVar33 + 0x1acf8);\n    iVar12 = *(int *)(puVar33 + 0x1ac74);\n    do {\n      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }\n      if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }\n      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;\n      uVar30 = uVar30 + 1;\n    } while (uVar30 != 0x80);\n    return;\n  }\n  return;\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (declaration "_Bool _Var2;" type_identifier identifier ;) (declaration "_Bool _Var3;" type_identifier identifier ;) (declaration "_Bool _Var4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "token tVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "dfa *d_00;" type_identifier (pointer_declarator "*d_00" * identifier) ;) (declaration "charclass *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "token *ptVar10;" type_identifier (pointer_declarator "*ptVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *p_Var13;" type_identifier (pointer_declarator "*p_Var13" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "char cVar16;" primitive_type identifier ;) (declaration "dfa *pdVar17;" type_identifier (pointer_declarator "*pdVar17" * identifier) ;) (declaration "size_t sVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "localeinfo *plVar20;" type_identifier (pointer_declarator "*plVar20" * identifier) ;) (declaration "uchar uVar21;" type_identifier identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "dfa *pdVar25;" type_identifier (pointer_declarator "*pdVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "reg_syntax_t rVar28;" type_identifier identifier ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "char cVar32;" primitive_type identifier ;) (declaration "undefined *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "charclass ccl;" type_identifier identifier ;) (expression_statement "pcVar31 = (char *)CONCAT31(in_register_0000001c,searchflag);" (assignment_expression "pcVar31 = (char *)CONCAT31(in_register_0000001c,searchflag)" identifier = (cast_expression "(char *)CONCAT31(in_register_0000001c,searchflag)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(in_register_0000001c,searchflag)" identifier (argument_list "(in_register_0000001c,searchflag)" ( identifier , identifier ))))) ;) (expression_statement "iVar6 = *(int *)PTR___stack_chk_guard_000424f0;" (assignment_expression "iVar6 = *(int *)PTR___stack_chk_guard_000424f0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(d->lex).ptr = s;" (assignment_expression "(d->lex).ptr = s" (field_expression "(d->lex).ptr" (parenthesized_expression "(d->lex)" ( (field_expression "d->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(d->lex).left = len;" (assignment_expression "(d->lex).left = len" (field_expression "(d->lex).left" (parenthesized_expression "(d->lex)" ( (field_expression "d->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(d->lex).lasttok = -1;" (assignment_expression "(d->lex).lasttok = -1" (field_expression "(d->lex).lasttok" (parenthesized_expression "(d->lex)" ( (field_expression "d->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(d->lex).laststart = true;" (assignment_expression "(d->lex).laststart = true" (field_expression "(d->lex).laststart" (parenthesized_expression "(d->lex)" ( (field_expression "d->lex" identifier -> field_identifier) )) . field_identifier) = true) ;) (expression_statement "_Var1 = (d->syntax).syntax_bits_set;" (assignment_expression "_Var1 = (d->syntax).syntax_bits_set" identifier = (field_expression "(d->syntax).syntax_bits_set" (parenthesized_expression "(d->syntax)" ( (field_expression "d->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (_Var1 == false) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }" if (parenthesized_expression "(_Var1 == false)" ( (binary_expression "_Var1 == false" identifier == false) )) (compound_statement "{\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }" { (expression_statement "pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);" (assignment_expression "pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -600,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -600" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "dfaerror(pcVar31);" (call_expression "dfaerror(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier ))) ;) })) (if_statement "if (d->nregexps == 0) {\n    addtok(d,0x10b);\n  }" if (parenthesized_expression "(d->nregexps == 0)" ( (binary_expression "d->nregexps == 0" (field_expression "d->nregexps" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    addtok(d,0x10b);\n  }" { (expression_statement "addtok(d,0x10b);" (call_expression "addtok(d,0x10b)" identifier (argument_list "(d,0x10b)" ( identifier , number_literal ))) ;) })) (expression_statement "tVar7 = lex(d);" (assignment_expression "tVar7 = lex(d)" identifier = (call_expression "lex(d)" identifier (argument_list "(d)" ( identifier )))) ;) (expression_statement "(d->parse).tok = tVar7;" (assignment_expression "(d->parse).tok = tVar7" (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(d->parse).depth = d->depth;" (assignment_expression "(d->parse).depth = d->depth" (field_expression "(d->parse).depth" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier) = (field_expression "d->depth" identifier -> field_identifier)) ;) (expression_statement "regexp(d);" (call_expression "regexp(d)" identifier (argument_list "(d)" ( identifier ))) ;) (if_statement "if ((d->parse).tok != -1) {\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }" if (parenthesized_expression "((d->parse).tok != -1)" ( (binary_expression "(d->parse).tok != -1" (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n    pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar31);\n  }" { (expression_statement "pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);" (assignment_expression "pcVar31 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x244,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x244" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "dfaerror(pcVar31);" (call_expression "dfaerror(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier ))) ;) })) (expression_statement "addtok(d,~d->nregexps);" (call_expression "addtok(d,~d->nregexps)" identifier (argument_list "(d,~d->nregexps)" ( identifier , (unary_expression "~d->nregexps" ~ (field_expression "d->nregexps" identifier -> field_identifier)) ))) ;) (expression_statement "addtok(d,0x105);" (call_expression "addtok(d,0x105)" identifier (argument_list "(d,0x105)" ( identifier , number_literal ))) ;) (expression_statement "sVar8 = d->nregexps;" (assignment_expression "sVar8 = d->nregexps" identifier = (field_expression "d->nregexps" identifier -> field_identifier)) ;) (if_statement "if (sVar8 != 0) {\n    addtok(d,0x106);\n    sVar8 = d->nregexps;\n  }" if (parenthesized_expression "(sVar8 != 0)" ( (binary_expression "sVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    addtok(d,0x106);\n    sVar8 = d->nregexps;\n  }" { (expression_statement "addtok(d,0x106);" (call_expression "addtok(d,0x106)" identifier (argument_list "(d,0x106)" ( identifier , number_literal ))) ;) (expression_statement "sVar8 = d->nregexps;" (assignment_expression "sVar8 = d->nregexps" identifier = (field_expression "d->nregexps" identifier -> field_identifier)) ;) })) (expression_statement "d->nregexps = sVar8 + 1;" (assignment_expression "d->nregexps = sVar8 + 1" (field_expression "d->nregexps" identifier -> field_identifier) = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) (expression_statement "d_00 = dfaalloc();" (assignment_expression "d_00 = dfaalloc()" identifier = (call_expression "dfaalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "pdVar25 = d;" (assignment_expression "pdVar25 = d" identifier = identifier) ;) (expression_statement "pdVar17 = d_00;" (assignment_expression "pdVar17 = d_00" identifier = identifier) ;) (do_statement "do {\n    uVar30 = (pdVar25->syntax).syntax_bits;\n    _Var2 = (pdVar25->syntax).syntax_bits_set;\n    _Var3 = (pdVar25->syntax).case_fold;\n    _Var4 = (pdVar25->syntax).anchor;\n    uVar21 = (pdVar25->syntax).eolbyte;\n    uVar26 = *(undefined4 *)(pdVar25->syntax).sbit;\n    uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4);\n    (pdVar17->syntax).syntax_bits = uVar30;\n    (pdVar17->syntax).syntax_bits_set = _Var2;\n    (pdVar17->syntax).case_fold = _Var3;\n    (pdVar17->syntax).anchor = _Var4;\n    (pdVar17->syntax).eolbyte = uVar21;\n    *(undefined4 *)(pdVar17->syntax).sbit = uVar26;\n    *(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22;\n    pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8);\n    pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8);\n  } while (pdVar25 != (dfa *)((d->localeinfo).sbctowc + 0xff));" do (compound_statement "{\n    uVar30 = (pdVar25->syntax).syntax_bits;\n    _Var2 = (pdVar25->syntax).syntax_bits_set;\n    _Var3 = (pdVar25->syntax).case_fold;\n    _Var4 = (pdVar25->syntax).anchor;\n    uVar21 = (pdVar25->syntax).eolbyte;\n    uVar26 = *(undefined4 *)(pdVar25->syntax).sbit;\n    uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4);\n    (pdVar17->syntax).syntax_bits = uVar30;\n    (pdVar17->syntax).syntax_bits_set = _Var2;\n    (pdVar17->syntax).case_fold = _Var3;\n    (pdVar17->syntax).anchor = _Var4;\n    (pdVar17->syntax).eolbyte = uVar21;\n    *(undefined4 *)(pdVar17->syntax).sbit = uVar26;\n    *(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22;\n    pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8);\n    pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8);\n  }" { (expression_statement "uVar30 = (pdVar25->syntax).syntax_bits;" (assignment_expression "uVar30 = (pdVar25->syntax).syntax_bits" identifier = (field_expression "(pdVar25->syntax).syntax_bits" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "_Var2 = (pdVar25->syntax).syntax_bits_set;" (assignment_expression "_Var2 = (pdVar25->syntax).syntax_bits_set" identifier = (field_expression "(pdVar25->syntax).syntax_bits_set" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "_Var3 = (pdVar25->syntax).case_fold;" (assignment_expression "_Var3 = (pdVar25->syntax).case_fold" identifier = (field_expression "(pdVar25->syntax).case_fold" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "_Var4 = (pdVar25->syntax).anchor;" (assignment_expression "_Var4 = (pdVar25->syntax).anchor" identifier = (field_expression "(pdVar25->syntax).anchor" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar21 = (pdVar25->syntax).eolbyte;" (assignment_expression "uVar21 = (pdVar25->syntax).eolbyte" identifier = (field_expression "(pdVar25->syntax).eolbyte" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar26 = *(undefined4 *)(pdVar25->syntax).sbit;" (assignment_expression "uVar26 = *(undefined4 *)(pdVar25->syntax).sbit" identifier = (pointer_expression "*(undefined4 *)(pdVar25->syntax).sbit" * (cast_expression "(undefined4 *)(pdVar25->syntax).sbit" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pdVar25->syntax).sbit" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4);" (assignment_expression "uVar22 = *(undefined4 *)((pdVar25->syntax).sbit + 4)" identifier = (pointer_expression "*(undefined4 *)((pdVar25->syntax).sbit + 4)" * (cast_expression "(undefined4 *)((pdVar25->syntax).sbit + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pdVar25->syntax).sbit + 4)" ( (binary_expression "(pdVar25->syntax).sbit + 4" (field_expression "(pdVar25->syntax).sbit" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (expression_statement "(pdVar17->syntax).syntax_bits = uVar30;" (assignment_expression "(pdVar17->syntax).syntax_bits = uVar30" (field_expression "(pdVar17->syntax).syntax_bits" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pdVar17->syntax).syntax_bits_set = _Var2;" (assignment_expression "(pdVar17->syntax).syntax_bits_set = _Var2" (field_expression "(pdVar17->syntax).syntax_bits_set" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pdVar17->syntax).case_fold = _Var3;" (assignment_expression "(pdVar17->syntax).case_fold = _Var3" (field_expression "(pdVar17->syntax).case_fold" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pdVar17->syntax).anchor = _Var4;" (assignment_expression "(pdVar17->syntax).anchor = _Var4" (field_expression "(pdVar17->syntax).anchor" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pdVar17->syntax).eolbyte = uVar21;" (assignment_expression "(pdVar17->syntax).eolbyte = uVar21" (field_expression "(pdVar17->syntax).eolbyte" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)(pdVar17->syntax).sbit = uVar26;" (assignment_expression "*(undefined4 *)(pdVar17->syntax).sbit = uVar26" (pointer_expression "*(undefined4 *)(pdVar17->syntax).sbit" * (cast_expression "(undefined4 *)(pdVar17->syntax).sbit" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pdVar17->syntax).sbit" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier))) = identifier) ;) (expression_statement "*(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22;" (assignment_expression "*(undefined4 *)((pdVar17->syntax).sbit + 4) = uVar22" (pointer_expression "*(undefined4 *)((pdVar17->syntax).sbit + 4)" * (cast_expression "(undefined4 *)((pdVar17->syntax).sbit + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pdVar17->syntax).sbit + 4)" ( (binary_expression "(pdVar17->syntax).sbit + 4" (field_expression "(pdVar17->syntax).sbit" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8);" (assignment_expression "pdVar25 = (dfa *)((pdVar25->syntax).sbit + 8)" identifier = (cast_expression "(dfa *)((pdVar25->syntax).sbit + 8)" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pdVar25->syntax).sbit + 8)" ( (binary_expression "(pdVar25->syntax).sbit + 8" (field_expression "(pdVar25->syntax).sbit" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) ;) (expression_statement "pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8);" (assignment_expression "pdVar17 = (dfa *)((pdVar17->syntax).sbit + 8)" identifier = (cast_expression "(dfa *)((pdVar17->syntax).sbit + 8)" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pdVar17->syntax).sbit + 8)" ( (binary_expression "(pdVar17->syntax).sbit + 8" (field_expression "(pdVar17->syntax).sbit" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pdVar25 != (dfa *)((d->localeinfo).sbctowc + 0xff))" ( (binary_expression "pdVar25 != (dfa *)((d->localeinfo).sbctowc + 0xff)" identifier != (cast_expression "(dfa *)((d->localeinfo).sbctowc + 0xff)" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((d->localeinfo).sbctowc + 0xff)" ( (binary_expression "(d->localeinfo).sbctowc + 0xff" (field_expression "(d->localeinfo).sbctowc" (parenthesized_expression "(d->localeinfo)" ( (field_expression "d->localeinfo" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) )) ;) (expression_statement "(pdVar17->syntax).syntax_bits = (pdVar25->syntax).syntax_bits;" (assignment_expression "(pdVar17->syntax).syntax_bits = (pdVar25->syntax).syntax_bits" (field_expression "(pdVar17->syntax).syntax_bits" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) = (field_expression "(pdVar25->syntax).syntax_bits" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(d_00->localeinfo).multibyte = false;" (assignment_expression "(d_00->localeinfo).multibyte = false" (field_expression "(d_00->localeinfo).multibyte" (parenthesized_expression "(d_00->localeinfo)" ( (field_expression "d_00->localeinfo" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "d_00->dfaexec =\n       (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n       (PTR_LAB_000421fc + 0x2944);" (assignment_expression "d_00->dfaexec =\n       (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n       (PTR_LAB_000421fc + 0x2944)" (field_expression "d_00->dfaexec" identifier -> field_identifier) = (cast_expression "(_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n       (PTR_LAB_000421fc + 0x2944)" ( (type_descriptor "_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000421fc + 0x2944)" ( (binary_expression "PTR_LAB_000421fc + 0x2944" identifier + number_literal) )))) ;) (expression_statement "d_00->multibyte_prop = (char *)0x0;" (assignment_expression "d_00->multibyte_prop = (char *)0x0" (field_expression "d_00->multibyte_prop" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_00->superset = (dfa *)0x0;" (assignment_expression "d_00->superset = (dfa *)0x0" (field_expression "d_00->superset" identifier -> field_identifier) = (cast_expression "(dfa *)0x0" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_00->states = (dfa_state *)0x0;" (assignment_expression "d_00->states = (dfa_state *)0x0" (field_expression "d_00->states" identifier -> field_identifier) = (cast_expression "(dfa_state *)0x0" ( (type_descriptor "dfa_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_00->sindex = 0;" (assignment_expression "d_00->sindex = 0" (field_expression "d_00->sindex" identifier -> field_identifier) = number_literal) ;) (expression_statement "d_00->constraints = (int *)0x0;" (assignment_expression "d_00->constraints = (int *)0x0" (field_expression "d_00->constraints" identifier -> field_identifier) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_00->separates = (int *)0x0;" (assignment_expression "d_00->separates = (int *)0x0" (field_expression "d_00->separates" identifier -> field_identifier) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_00->follows = (position_set *)0x0;" (assignment_expression "d_00->follows = (position_set *)0x0" (field_expression "d_00->follows" identifier -> field_identifier) = (cast_expression "(position_set *)0x0" ( (type_descriptor "position_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_00->tralloc = 0;" (assignment_expression "d_00->tralloc = 0" (field_expression "d_00->tralloc" identifier -> field_identifier) = number_literal) ;) (expression_statement "d_00->trans = (state_num **)0x0;" (assignment_expression "d_00->trans = (state_num **)0x0" (field_expression "d_00->trans" identifier -> field_identifier) = (cast_expression "(state_num **)0x0" ( (type_descriptor "state_num **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "d_00->fails = (state_num **)0x0;" (assignment_expression "d_00->fails = (state_num **)0x0" (field_expression "d_00->fails" identifier -> field_identifier) = (cast_expression "(state_num **)0x0" ( (type_descriptor "state_num **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "d_00->success = (char *)0x0;" (assignment_expression "d_00->success = (char *)0x0" (field_expression "d_00->success" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_00->newlines = (state_num *)0x0;" (assignment_expression "d_00->newlines = (state_num *)0x0" (field_expression "d_00->newlines" identifier -> field_identifier) = (cast_expression "(state_num *)0x0" ( (type_descriptor "state_num *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar23 = d_00->calloc;" (assignment_expression "uVar23 = d_00->calloc" identifier = (field_expression "d_00->calloc" identifier -> field_identifier)) ;) (if_statement "if ((int)(uVar23 << 5) < 0 || uVar23 >> 0x1b != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" if (parenthesized_expression "((int)(uVar23 << 5) < 0 || uVar23 >> 0x1b != 0)" ( (binary_expression "(int)(uVar23 << 5) < 0 || uVar23 >> 0x1b != 0" (binary_expression "(int)(uVar23 << 5) < 0" (cast_expression "(int)(uVar23 << 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar23 << 5)" ( (binary_expression "uVar23 << 5" identifier << number_literal) ))) < number_literal) || (binary_expression "uVar23 >> 0x1b != 0" (binary_expression "uVar23 >> 0x1b" identifier >> number_literal) != number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar9 = (charclass *)xmalloc(uVar23 << 5);" (assignment_expression "pcVar9 = (charclass *)xmalloc(uVar23 << 5)" identifier = (cast_expression "(charclass *)xmalloc(uVar23 << 5)" ( (type_descriptor "charclass *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar23 << 5)" identifier (argument_list "(uVar23 << 5)" ( (binary_expression "uVar23 << 5" identifier << number_literal) ))))) ;) (expression_statement "d_00->charclasses = pcVar9;" (assignment_expression "d_00->charclasses = pcVar9" (field_expression "d_00->charclasses" identifier -> field_identifier) = identifier) ;) (expression_statement "rVar28 = d->cindex << 5;" (assignment_expression "rVar28 = d->cindex << 5" identifier = (binary_expression "d->cindex << 5" (field_expression "d->cindex" identifier -> field_identifier) << number_literal)) ;) (if_statement "if (d->cindex == 0) {\n    uVar23 = d->tindex;\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);\n    uVar23 = d->tindex;\n  }" if (parenthesized_expression "(d->cindex == 0)" ( (binary_expression "d->cindex == 0" (field_expression "d->cindex" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    uVar23 = d->tindex;\n  }" { (expression_statement "uVar23 = d->tindex;" (assignment_expression "uVar23 = d->tindex" identifier = (field_expression "d->tindex" identifier -> field_identifier)) ;) }) (else_clause "else {\n    (*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);\n    uVar23 = d->tindex;\n  }" else (compound_statement "{\n    (*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);\n    uVar23 = d->tindex;\n  }" { (expression_statement "(*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses);" (call_expression "(*(code *)PTR_memcpy_000424f4)(pcVar9,d->charclasses)" (parenthesized_expression "(*(code *)PTR_memcpy_000424f4)" ( (pointer_expression "*(code *)PTR_memcpy_000424f4" * (cast_expression "(code *)PTR_memcpy_000424f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar9,d->charclasses)" ( identifier , (field_expression "d->charclasses" identifier -> field_identifier) ))) ;) (expression_statement "uVar23 = d->tindex;" (assignment_expression "uVar23 = d->tindex" identifier = (field_expression "d->tindex" identifier -> field_identifier)) ;) }))) (if_statement "if ((int)(uVar23 << 3) < 0 || uVar23 >> 0x1d != 0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" if (parenthesized_expression "((int)(uVar23 << 3) < 0 || uVar23 >> 0x1d != 0)" ( (binary_expression "(int)(uVar23 << 3) < 0 || uVar23 >> 0x1d != 0" (binary_expression "(int)(uVar23 << 3) < 0" (cast_expression "(int)(uVar23 << 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar23 << 3)" ( (binary_expression "uVar23 << 3" identifier << number_literal) ))) < number_literal) || (binary_expression "uVar23 >> 0x1d != 0" (binary_expression "uVar23 >> 0x1d" identifier >> number_literal) != number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ptVar10 = (token *)xmalloc(uVar23 << 3);" (assignment_expression "ptVar10 = (token *)xmalloc(uVar23 << 3)" identifier = (cast_expression "(token *)xmalloc(uVar23 << 3)" ( (type_descriptor "token *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar23 << 3)" identifier (argument_list "(uVar23 << 3)" ( (binary_expression "uVar23 << 3" identifier << number_literal) ))))) ;) (expression_statement "d_00->tokens = ptVar10;" (assignment_expression "d_00->tokens = ptVar10" (field_expression "d_00->tokens" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar8 = d->tindex;" (assignment_expression "sVar8 = d->tindex" identifier = (field_expression "d->tindex" identifier -> field_identifier)) ;) (expression_statement "d_00->talloc = sVar8 << 1;" (assignment_expression "d_00->talloc = sVar8 << 1" (field_expression "d_00->talloc" identifier -> field_identifier) = (binary_expression "sVar8 << 1" identifier << number_literal)) ;) (expression_statement "puVar33 = PTR_UINT_00042178;" (assignment_expression "puVar33 = PTR_UINT_00042178" identifier = identifier) ;) (if_statement "if (sVar8 == 0) {\n    d_00->tindex = 0;\nLAB_0002748c:\n    dfafree(d_00);\n    (*(code *)PTR_free_000424fc)(d_00);\n    pcVar27 = (char *)d->tindex;\n  }\n  else {\n    uVar23 = 0;\n    sVar8 = 0;\n    cVar16 = '\0';\n    do {\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    } while (uVar23 < d->tindex);\n    d_00->tindex = sVar18;\n    if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;\n    d->superset = d_00;\n    pcVar27 = (char *)d->tindex;\n  }" if (parenthesized_expression "(sVar8 == 0)" ( (binary_expression "sVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    d_00->tindex = 0;\nLAB_0002748c:\n    dfafree(d_00);\n    (*(code *)PTR_free_000424fc)(d_00);\n    pcVar27 = (char *)d->tindex;\n  }" { (expression_statement "d_00->tindex = 0;" (assignment_expression "d_00->tindex = 0" (field_expression "d_00->tindex" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_0002748c:\n    dfafree(d_00);" statement_identifier : (expression_statement "dfafree(d_00);" (call_expression "dfafree(d_00)" identifier (argument_list "(d_00)" ( identifier ))) ;)) (expression_statement "(*(code *)PTR_free_000424fc)(d_00);" (call_expression "(*(code *)PTR_free_000424fc)(d_00)" (parenthesized_expression "(*(code *)PTR_free_000424fc)" ( (pointer_expression "*(code *)PTR_free_000424fc" * (cast_expression "(code *)PTR_free_000424fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(d_00)" ( identifier ))) ;) (expression_statement "pcVar27 = (char *)d->tindex;" (assignment_expression "pcVar27 = (char *)d->tindex" identifier = (cast_expression "(char *)d->tindex" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "d->tindex" identifier -> field_identifier))) ;) }) (else_clause "else {\n    uVar23 = 0;\n    sVar8 = 0;\n    cVar16 = '\0';\n    do {\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    } while (uVar23 < d->tindex);\n    d_00->tindex = sVar18;\n    if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;\n    d->superset = d_00;\n    pcVar27 = (char *)d->tindex;\n  }" else (compound_statement "{\n    uVar23 = 0;\n    sVar8 = 0;\n    cVar16 = '\0';\n    do {\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    } while (uVar23 < d->tindex);\n    d_00->tindex = sVar18;\n    if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;\n    d->superset = d_00;\n    pcVar27 = (char *)d->tindex;\n  }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) (expression_statement "cVar16 = '\0';" (assignment_expression "cVar16 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    } while (uVar23 < d->tindex);" do (compound_statement "{\n      uVar11 = d->tokens[uVar23] - 0x10a;\n      if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }\n      sVar18 = sVar8 + 1;\n      d_00->tokens[sVar8] = d->tokens[uVar23];\n      cVar32 = _Var1;\n      if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }\n      uVar23 = uVar23 + 1;\n      sVar8 = sVar18;\n      cVar16 = cVar32;\n    }" { (expression_statement "uVar11 = d->tokens[uVar23] - 0x10a;" (assignment_expression "uVar11 = d->tokens[uVar23] - 0x10a" identifier = (binary_expression "d->tokens[uVar23] - 0x10a" (subscript_expression "d->tokens[uVar23]" (field_expression "d->tokens" identifier -> field_identifier) [ identifier ]) - number_literal)) ;) (if_statement "if (uVar11 < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }" if (parenthesized_expression "(uVar11 < 10)" ( (binary_expression "uVar11 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0002727c */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();\n        return;\n      }" { comment comment (expression_statement "(*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))();" (call_expression "(*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c))" * (cast_expression "(code *)(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c))" ( (binary_expression "&_gp + *(int *)(puVar33 + uVar11 * 4 + 0x7c)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar33 + uVar11 * 4 + 0x7c)" * (cast_expression "(int *)(puVar33 + uVar11 * 4 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + uVar11 * 4 + 0x7c)" ( (binary_expression "puVar33 + uVar11 * 4 + 0x7c" (binary_expression "puVar33 + uVar11 * 4" identifier + (binary_expression "uVar11 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "sVar18 = sVar8 + 1;" (assignment_expression "sVar18 = sVar8 + 1" identifier = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) (expression_statement "d_00->tokens[sVar8] = d->tokens[uVar23];" (assignment_expression "d_00->tokens[sVar8] = d->tokens[uVar23]" (subscript_expression "d_00->tokens[sVar8]" (field_expression "d_00->tokens" identifier -> field_identifier) [ identifier ]) = (subscript_expression "d->tokens[uVar23]" (field_expression "d->tokens" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "cVar32 = _Var1;" (assignment_expression "cVar32 = _Var1" identifier = identifier) ;) (if_statement "if ((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])) {\n        cVar32 = _Var1;\n      }" if (parenthesized_expression "((0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23]))" ( (binary_expression "(0xff < (uint)d->tokens[uVar23]) && (cVar32 = cVar16, 0x113 < d->tokens[uVar23])" (parenthesized_expression "(0xff < (uint)d->tokens[uVar23])" ( (binary_expression "0xff < (uint)d->tokens[uVar23]" number_literal < (cast_expression "(uint)d->tokens[uVar23]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "d->tokens[uVar23]" (field_expression "d->tokens" identifier -> field_identifier) [ identifier ]))) )) && (parenthesized_expression "(cVar32 = cVar16, 0x113 < d->tokens[uVar23])" ( (comma_expression "cVar32 = cVar16, 0x113 < d->tokens[uVar23]" (assignment_expression "cVar32 = cVar16" identifier = identifier) , (binary_expression "0x113 < d->tokens[uVar23]" number_literal < (subscript_expression "d->tokens[uVar23]" (field_expression "d->tokens" identifier -> field_identifier) [ identifier ]))) ))) )) (compound_statement "{\n        cVar32 = _Var1;\n      }" { (expression_statement "cVar32 = _Var1;" (assignment_expression "cVar32 = _Var1" identifier = identifier) ;) })) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "sVar8 = sVar18;" (assignment_expression "sVar8 = sVar18" identifier = identifier) ;) (expression_statement "cVar16 = cVar32;" (assignment_expression "cVar16 = cVar32" identifier = identifier) ;) }) while (parenthesized_expression "(uVar23 < d->tindex)" ( (binary_expression "uVar23 < d->tindex" identifier < (field_expression "d->tindex" identifier -> field_identifier)) )) ;) (expression_statement "d_00->tindex = sVar18;" (assignment_expression "d_00->tindex = sVar18" (field_expression "d_00->tindex" identifier -> field_identifier) = identifier) ;) (if_statement "if ((cVar32 == '\0') || ((d->localeinfo).multibyte == false)) goto LAB_0002748c;" if (parenthesized_expression "((cVar32 == '\0') || ((d->localeinfo).multibyte == false))" ( (binary_expression "(cVar32 == '\0') || ((d->localeinfo).multibyte == false)" (parenthesized_expression "(cVar32 == '\0')" ( (binary_expression "cVar32 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((d->localeinfo).multibyte == false)" ( (binary_expression "(d->localeinfo).multibyte == false" (field_expression "(d->localeinfo).multibyte" (parenthesized_expression "(d->localeinfo)" ( (field_expression "d->localeinfo" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (goto_statement "goto LAB_0002748c;" goto statement_identifier ;)) (expression_statement "d->superset = d_00;" (assignment_expression "d->superset = d_00" (field_expression "d->superset" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar27 = (char *)d->tindex;" (assignment_expression "pcVar27 = (char *)d->tindex" identifier = (cast_expression "(char *)d->tindex" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "d->tindex" identifier -> field_identifier))) ;) }))) (expression_statement "pcVar24 = (char *)0x0;" (assignment_expression "pcVar24 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar27 == (char *)0x0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00027418;\nLAB_000274c4:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    piVar19 = d->tokens;\n    do {\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    } while (pcVar27 != pcVar24);\n    _Var1 = (d->localeinfo).using_utf8;\n    if (_Var1 == false) goto LAB_00027418;\n    piVar19 = d->tokens;\n    pcVar24 = (char *)0x0;\n    uVar30 = 0x113;\n    rVar28 = 0x10a;\n    cVar16 = '\0';\n    do {\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    } while (pcVar27 != pcVar24);\n    if (cVar32 == '\0') goto LAB_000274c4;\n  }" if (parenthesized_expression "(pcVar27 == (char *)0x0)" ( (binary_expression "pcVar27 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00027418;\nLAB_000274c4:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }" { (if_statement "if ((d->localeinfo).using_utf8 == false) goto LAB_00027418;" if (parenthesized_expression "((d->localeinfo).using_utf8 == false)" ( (binary_expression "(d->localeinfo).using_utf8 == false" (field_expression "(d->localeinfo).using_utf8" (parenthesized_expression "(d->localeinfo)" ( (field_expression "d->localeinfo" identifier -> field_identifier) )) . field_identifier) == false) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (labeled_statement "LAB_000274c4:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }" statement_identifier : (if_statement "if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }" if (parenthesized_expression "(d->superset != (dfa *)0x0)" ( (binary_expression "d->superset != (dfa *)0x0" (field_expression "d->superset" identifier -> field_identifier) != (cast_expression "(dfa *)0x0" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dfafree(d->superset);\n      (*(code *)PTR_free_000424fc)(d->superset);\n      d->superset = (dfa *)0x0;\n    }" { (expression_statement "dfafree(d->superset);" (call_expression "dfafree(d->superset)" identifier (argument_list "(d->superset)" ( (field_expression "d->superset" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_free_000424fc)(d->superset);" (call_expression "(*(code *)PTR_free_000424fc)(d->superset)" (parenthesized_expression "(*(code *)PTR_free_000424fc)" ( (pointer_expression "*(code *)PTR_free_000424fc" * (cast_expression "(code *)PTR_free_000424fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(d->superset)" ( (field_expression "d->superset" identifier -> field_identifier) ))) ;) (expression_statement "d->superset = (dfa *)0x0;" (assignment_expression "d->superset = (dfa *)0x0" (field_expression "d->superset" identifier -> field_identifier) = (cast_expression "(dfa *)0x0" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    piVar19 = d->tokens;\n    do {\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    } while (pcVar27 != pcVar24);\n    _Var1 = (d->localeinfo).using_utf8;\n    if (_Var1 == false) goto LAB_00027418;\n    piVar19 = d->tokens;\n    pcVar24 = (char *)0x0;\n    uVar30 = 0x113;\n    rVar28 = 0x10a;\n    cVar16 = '\0';\n    do {\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    } while (pcVar27 != pcVar24);\n    if (cVar32 == '\0') goto LAB_000274c4;\n  }" else (compound_statement "{\n    piVar19 = d->tokens;\n    do {\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    } while (pcVar27 != pcVar24);\n    _Var1 = (d->localeinfo).using_utf8;\n    if (_Var1 == false) goto LAB_00027418;\n    piVar19 = d->tokens;\n    pcVar24 = (char *)0x0;\n    uVar30 = 0x113;\n    rVar28 = 0x10a;\n    cVar16 = '\0';\n    do {\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    } while (pcVar27 != pcVar24);\n    if (cVar32 == '\0') goto LAB_000274c4;\n  }" { (expression_statement "piVar19 = d->tokens;" (assignment_expression "piVar19 = d->tokens" identifier = (field_expression "d->tokens" identifier -> field_identifier)) ;) (do_statement "do {\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    } while (pcVar27 != pcVar24);" do (compound_statement "{\n      iVar12 = *piVar19;\n      rVar28 = (reg_syntax_t)(iVar12 < 0x112);\n      if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n    }" { (expression_statement "iVar12 = *piVar19;" (assignment_expression "iVar12 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "rVar28 = (reg_syntax_t)(iVar12 < 0x112);" (assignment_expression "rVar28 = (reg_syntax_t)(iVar12 < 0x112)" identifier = (call_expression "(reg_syntax_t)(iVar12 < 0x112)" (parenthesized_expression "(reg_syntax_t)" ( identifier )) (argument_list "(iVar12 < 0x112)" ( (binary_expression "iVar12 < 0x112" identifier < number_literal) )))) ;) (if_statement "if (0x10d < iVar12) {\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }" if (parenthesized_expression "(0x10d < iVar12)" ( (binary_expression "0x10d < iVar12" number_literal < identifier) )) (compound_statement "{\n        if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;\n      }" { (if_statement "if (rVar28 == 0) {\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }\n        else if ((d->localeinfo).multibyte != false) goto LAB_00027344;" if (parenthesized_expression "(rVar28 == 0)" ( (binary_expression "rVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }\n        }" { (if_statement "if (iVar12 < 0x114) {\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }" if (parenthesized_expression "(iVar12 < 0x114)" ( (binary_expression "iVar12 < 0x114" identifier < number_literal) )) (compound_statement "{\nLAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);\n            pdVar25 = d->superset;\n            goto LAB_00027350;\n          }" { (labeled_statement "LAB_00027344:\n            d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);" statement_identifier : (expression_statement "d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60);" (assignment_expression "d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60)" (field_expression "d->dfaexec" identifier -> field_identifier) = (cast_expression "(_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                         (PTR_LAB_000421fc + -0xa60)" ( (type_descriptor "_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000421fc + -0xa60)" ( (binary_expression "PTR_LAB_000421fc + -0xa60" identifier + number_literal) )))) ;)) (expression_statement "pdVar25 = d->superset;" (assignment_expression "pdVar25 = d->superset" identifier = (field_expression "d->superset" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00027350;" goto statement_identifier ;) })) }) (else_clause "else if ((d->localeinfo).multibyte != false) goto LAB_00027344;" else (if_statement "if ((d->localeinfo).multibyte != false) goto LAB_00027344;" if (parenthesized_expression "((d->localeinfo).multibyte != false)" ( (binary_expression "(d->localeinfo).multibyte != false" (field_expression "(d->localeinfo).multibyte" (parenthesized_expression "(d->localeinfo)" ( (field_expression "d->localeinfo" identifier -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_00027344;" goto statement_identifier ;)))) })) (expression_statement "pcVar24 = pcVar24 + 1;" (assignment_expression "pcVar24 = pcVar24 + 1" identifier = (binary_expression "pcVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar27 != pcVar24)" ( (binary_expression "pcVar27 != pcVar24" identifier != identifier) )) ;) (expression_statement "_Var1 = (d->localeinfo).using_utf8;" (assignment_expression "_Var1 = (d->localeinfo).using_utf8" identifier = (field_expression "(d->localeinfo).using_utf8" (parenthesized_expression "(d->localeinfo)" ( (field_expression "d->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (_Var1 == false) goto LAB_00027418;" if (parenthesized_expression "(_Var1 == false)" ( (binary_expression "_Var1 == false" identifier == false) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (expression_statement "piVar19 = d->tokens;" (assignment_expression "piVar19 = d->tokens" identifier = (field_expression "d->tokens" identifier -> field_identifier)) ;) (expression_statement "pcVar24 = (char *)0x0;" (assignment_expression "pcVar24 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar30 = 0x113;" (assignment_expression "uVar30 = 0x113" identifier = number_literal) ;) (expression_statement "rVar28 = 0x10a;" (assignment_expression "rVar28 = 0x10a" identifier = number_literal) ;) (expression_statement "cVar16 = '\0';" (assignment_expression "cVar16 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    } while (pcVar27 != pcVar24);" do (compound_statement "{\n      iVar12 = *piVar19;\n      cVar32 = _Var1;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      pcVar24 = pcVar24 + 1;\n      piVar19 = piVar19 + 1;\n      cVar16 = cVar32;\n    }" { (expression_statement "iVar12 = *piVar19;" (assignment_expression "iVar12 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "cVar32 = _Var1;" (assignment_expression "cVar32 = _Var1" identifier = identifier) ;) (if_statement "if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" if (parenthesized_expression "(iVar12 != 0x112)" ( (binary_expression "iVar12 != 0x112" identifier != number_literal) )) (compound_statement "{\n        if (iVar12 == 0x113) goto LAB_00027418;\n        cVar32 = cVar16;\n        if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" { (if_statement "if (iVar12 == 0x113) goto LAB_00027418;" if (parenthesized_expression "(iVar12 == 0x113)" ( (binary_expression "iVar12 == 0x113" identifier == number_literal) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (expression_statement "cVar32 = cVar16;" (assignment_expression "cVar32 = cVar16" identifier = identifier) ;) (if_statement "if (iVar12 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" if (parenthesized_expression "(iVar12 == 0x10a)" ( (binary_expression "iVar12 == 0x10a" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" { (expression_statement "(*(code *)PTR_abort_0004238c)();" (call_expression "(*(code *)PTR_abort_0004238c)()" (parenthesized_expression "(*(code *)PTR_abort_0004238c)" ( (pointer_expression "*(code *)PTR_abort_0004238c" * (cast_expression "(code *)PTR_abort_0004238c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) })) (expression_statement "pcVar24 = pcVar24 + 1;" (assignment_expression "pcVar24 = pcVar24 + 1" identifier = (binary_expression "pcVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "cVar16 = cVar32;" (assignment_expression "cVar16 = cVar32" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar27 != pcVar24)" ( (binary_expression "pcVar27 != pcVar24" identifier != identifier) )) ;) (if_statement "if (cVar32 == '\0') goto LAB_000274c4;" if (parenthesized_expression "(cVar32 == '\0')" ( (binary_expression "cVar32 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000274c4;" goto statement_identifier ;)) }))) (expression_statement "free_mbdata(d);" (call_expression "free_mbdata(d)" identifier (argument_list "(d)" ( identifier ))) ;) (expression_statement "(d->localeinfo).multibyte = false;" (assignment_expression "(d->localeinfo).multibyte = false" (field_expression "(d->localeinfo).multibyte" (parenthesized_expression "(d->localeinfo)" ( (field_expression "d->localeinfo" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n               (PTR_LAB_000421fc + 0x2944);" (assignment_expression "d->dfaexec = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n               (PTR_LAB_000421fc + 0x2944)" (field_expression "d->dfaexec" identifier -> field_identifier) = (cast_expression "(_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n               (PTR_LAB_000421fc + 0x2944)" ( (type_descriptor "_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000421fc + 0x2944)" ( (binary_expression "PTR_LAB_000421fc + 0x2944" identifier + number_literal) )))) ;) (expression_statement "d->fast = true;" (assignment_expression "d->fast = true" (field_expression "d->fast" identifier -> field_identifier) = true) ;) (labeled_statement "LAB_00027418:\n  pcVar27 = pcVar31;" statement_identifier : (expression_statement "pcVar27 = pcVar31;" (assignment_expression "pcVar27 = pcVar31" identifier = identifier) ;)) (expression_statement "dfaanalyze(d,searchflag);" (call_expression "dfaanalyze(d,searchflag)" identifier (argument_list "(d,searchflag)" ( identifier , identifier ))) ;) (expression_statement "pdVar25 = d->superset;" (assignment_expression "pdVar25 = d->superset" identifier = (field_expression "d->superset" identifier -> field_identifier)) ;) (labeled_statement "LAB_00027350:\n  if (pdVar25 != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(pdVar25,searchflag);\n    pcVar27 = pcVar31;\n  }" statement_identifier : (if_statement "if (pdVar25 != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(pdVar25,searchflag);\n    pcVar27 = pcVar31;\n  }" if (parenthesized_expression "(pdVar25 != (dfa *)0x0)" ( (binary_expression "pdVar25 != (dfa *)0x0" identifier != (cast_expression "(dfa *)0x0" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    d->fast = true;\n    dfaanalyze(pdVar25,searchflag);\n    pcVar27 = pcVar31;\n  }" { (expression_statement "d->fast = true;" (assignment_expression "d->fast = true" (field_expression "d->fast" identifier -> field_identifier) = true) ;) (expression_statement "dfaanalyze(pdVar25,searchflag);" (call_expression "dfaanalyze(pdVar25,searchflag)" identifier (argument_list "(pdVar25,searchflag)" ( identifier , identifier ))) ;) (expression_statement "pcVar27 = pcVar31;" (assignment_expression "pcVar27 = pcVar31" identifier = identifier) ;) }))) (if_statement "if (iVar6 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar33 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar33 + 0x1af18))();\n    if (*pcVar27 == '\0') {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);\n    }\n    else {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }\n    pdVar25->dfaexec = p_Var13;\n    bVar15 = false;\n    if (*pcVar27 == '\0') {\n      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);\n      if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }\n    }\n    pdVar25->simple_locale = bVar15;\n    plVar20 = &pdVar25->localeinfo;\n    pcVar31 = pcVar27 + 0x500;\n    do {\n      cVar16 = pcVar27[1];\n      cVar32 = pcVar27[2];\n      cVar5 = pcVar27[3];\n      uVar29 = *(undefined4 *)(pcVar27 + 4);\n      uVar26 = *(undefined4 *)(pcVar27 + 8);\n      uVar22 = *(undefined4 *)(pcVar27 + 0xc);\n      plVar20->multibyte = (_Bool)pcVar27[0];\n      plVar20->using_utf8 = (_Bool)cVar16;\n      plVar20->sbclen[0] = cVar32;\n      plVar20->sbclen[1] = cVar5;\n      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;\n      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;\n      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;\n      pcVar27 = pcVar27 + 0x10;\n      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);\n    } while (pcVar27 != pcVar31);\n    cVar16 = pcVar27[1];\n    cVar32 = pcVar27[2];\n    cVar5 = pcVar27[3];\n    plVar20->multibyte = (_Bool)pcVar27[0];\n    plVar20->using_utf8 = (_Bool)cVar16;\n    plVar20->sbclen[0] = cVar32;\n    plVar20->sbclen[1] = cVar5;\n    pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1);\n    pdVar25->canychar = 0xffffffff;\n    (pdVar25->lex).cur_mb_len = 1;\n    (pdVar25->syntax).syntax_bits_set = true;\n    (pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0);\n    (pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1);\n    uVar21 = '\n';\n    if ((uVar30 & 2) != 0) {\n      uVar21 = '\0';\n    }\n    (pdVar25->syntax).eolbyte = uVar21;\n    (pdVar25->syntax).syntax_bits = rVar28;\n    uVar30 = 0xffffff80;\n    iVar6 = *(int *)(puVar33 + 0x1acf8);\n    iVar12 = *(int *)(puVar33 + 0x1ac74);\n    do {\n      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }\n      if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }\n      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;\n      uVar30 = uVar30 + 1;\n    } while (uVar30 != 0x80);\n    return;\n  }" if (parenthesized_expression "(iVar6 != *(int *)PTR___stack_chk_guard_000424f0)" ( (binary_expression "iVar6 != *(int *)PTR___stack_chk_guard_000424f0" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar33 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar33 + 0x1af18))();\n    if (*pcVar27 == '\0') {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);\n    }\n    else {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }\n    pdVar25->dfaexec = p_Var13;\n    bVar15 = false;\n    if (*pcVar27 == '\0') {\n      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);\n      if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }\n    }\n    pdVar25->simple_locale = bVar15;\n    plVar20 = &pdVar25->localeinfo;\n    pcVar31 = pcVar27 + 0x500;\n    do {\n      cVar16 = pcVar27[1];\n      cVar32 = pcVar27[2];\n      cVar5 = pcVar27[3];\n      uVar29 = *(undefined4 *)(pcVar27 + 4);\n      uVar26 = *(undefined4 *)(pcVar27 + 8);\n      uVar22 = *(undefined4 *)(pcVar27 + 0xc);\n      plVar20->multibyte = (_Bool)pcVar27[0];\n      plVar20->using_utf8 = (_Bool)cVar16;\n      plVar20->sbclen[0] = cVar32;\n      plVar20->sbclen[1] = cVar5;\n      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;\n      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;\n      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;\n      pcVar27 = pcVar27 + 0x10;\n      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);\n    } while (pcVar27 != pcVar31);\n    cVar16 = pcVar27[1];\n    cVar32 = pcVar27[2];\n    cVar5 = pcVar27[3];\n    plVar20->multibyte = (_Bool)pcVar27[0];\n    plVar20->using_utf8 = (_Bool)cVar16;\n    plVar20->sbclen[0] = cVar32;\n    plVar20->sbclen[1] = cVar5;\n    pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1);\n    pdVar25->canychar = 0xffffffff;\n    (pdVar25->lex).cur_mb_len = 1;\n    (pdVar25->syntax).syntax_bits_set = true;\n    (pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0);\n    (pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1);\n    uVar21 = '\n';\n    if ((uVar30 & 2) != 0) {\n      uVar21 = '\0';\n    }\n    (pdVar25->syntax).eolbyte = uVar21;\n    (pdVar25->syntax).syntax_bits = rVar28;\n    uVar30 = 0xffffff80;\n    iVar6 = *(int *)(puVar33 + 0x1acf8);\n    iVar12 = *(int *)(puVar33 + 0x1ac74);\n    do {\n      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }\n      if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }\n      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;\n      uVar30 = uVar30 + 1;\n    } while (uVar30 != 0x80);\n    return;\n  }" { (expression_statement "puVar33 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar33 = PTR___stack_chk_fail_000424d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" * (cast_expression "(code *)PTR___stack_chk_fail_000424d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar33 + 0x1af18))();" (call_expression "(**(code **)(puVar33 + 0x1af18))()" (parenthesized_expression "(**(code **)(puVar33 + 0x1af18))" ( (pointer_expression "**(code **)(puVar33 + 0x1af18)" * (pointer_expression "*(code **)(puVar33 + 0x1af18)" * (cast_expression "(code **)(puVar33 + 0x1af18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x1af18)" ( (binary_expression "puVar33 + 0x1af18" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*pcVar27 == '\0') {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);\n    }\n    else {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }" if (parenthesized_expression "(*pcVar27 == '\0')" ( (binary_expression "*pcVar27 == '\0'" (pointer_expression "*pcVar27" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);\n    }" { (expression_statement "p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944);" (assignment_expression "p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944)" identifier = (cast_expression "(_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x2944)" ( (type_descriptor "_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x1acf8) + 0x2944)" ( (binary_expression "*(int *)(puVar33 + 0x1acf8) + 0x2944" (pointer_expression "*(int *)(puVar33 + 0x1acf8)" * (cast_expression "(int *)(puVar33 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x1acf8)" ( (binary_expression "puVar33 + 0x1acf8" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }" else (compound_statement "{\n      p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);\n    }" { (expression_statement "p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0);" (assignment_expression "p_Var13 = (_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0)" identifier = (cast_expression "(_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *)\n                (*(int *)(puVar33 + 0x1acf8) + 0x21d0)" ( (type_descriptor "_func_char_ptr_dfa_ptr_char_ptr_char_ptr__Bool_size_t_ptr__Bool_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar33 + 0x1acf8) + 0x21d0)" ( (binary_expression "*(int *)(puVar33 + 0x1acf8) + 0x21d0" (pointer_expression "*(int *)(puVar33 + 0x1acf8)" * (cast_expression "(int *)(puVar33 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x1acf8)" ( (binary_expression "puVar33 + 0x1acf8" identifier + number_literal) )))) + number_literal) )))) ;) }))) (expression_statement "pdVar25->dfaexec = p_Var13;" (assignment_expression "pdVar25->dfaexec = p_Var13" (field_expression "pdVar25->dfaexec" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (*pcVar27 == '\0') {\n      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);\n      if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }\n    }" if (parenthesized_expression "(*pcVar27 == '\0')" ( (binary_expression "*pcVar27 == '\0'" (pointer_expression "*pcVar27" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);\n      if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }\n    }" { (expression_statement "iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0);" (assignment_expression "iVar6 = (**(code **)(puVar33 + 0x1aee4))(6,0)" identifier = (call_expression "(**(code **)(puVar33 + 0x1aee4))(6,0)" (parenthesized_expression "(**(code **)(puVar33 + 0x1aee4))" ( (pointer_expression "**(code **)(puVar33 + 0x1aee4)" * (pointer_expression "*(code **)(puVar33 + 0x1aee4)" * (cast_expression "(code **)(puVar33 + 0x1aee4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x1aee4)" ( (binary_expression "puVar33 + 0x1aee4" identifier + number_literal) ))))) )) (argument_list "(6,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n        bVar15 = true;\n      }\n      else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar15 = true;\n      }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }) (else_clause "else {\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }" else (compound_statement "{\n        iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);\n        if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }\n      }" { (expression_statement "iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234);" (assignment_expression "iVar12 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234)" identifier = (call_expression "(**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234)" (parenthesized_expression "(**(code **)(puVar33 + 0x1b014))" ( (pointer_expression "**(code **)(puVar33 + 0x1b014)" * (pointer_expression "*(code **)(puVar33 + 0x1b014)" * (cast_expression "(code **)(puVar33 + 0x1b014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x1b014)" ( (binary_expression "puVar33 + 0x1b014" identifier + number_literal) ))))) )) (argument_list "(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x234)" ( identifier , (binary_expression "*(int *)(puVar33 + 0x1ac74) + -0x234" (pointer_expression "*(int *)(puVar33 + 0x1ac74)" * (cast_expression "(int *)(puVar33 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x1ac74)" ( (binary_expression "puVar33 + 0x1ac74" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\n          bVar15 = true;\n        }\n        else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar15 = true;\n        }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }) (else_clause "else {\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }" else (compound_statement "{\n          iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);\n          bVar15 = iVar6 == 0;\n        }" { (expression_statement "iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230);" (assignment_expression "iVar6 = (**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230)" identifier = (call_expression "(**(code **)(puVar33 + 0x1b014))(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230)" (parenthesized_expression "(**(code **)(puVar33 + 0x1b014))" ( (pointer_expression "**(code **)(puVar33 + 0x1b014)" * (pointer_expression "*(code **)(puVar33 + 0x1b014)" * (cast_expression "(code **)(puVar33 + 0x1b014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x1b014)" ( (binary_expression "puVar33 + 0x1b014" identifier + number_literal) ))))) )) (argument_list "(iVar6,*(int *)(puVar33 + 0x1ac74) + -0x230)" ( identifier , (binary_expression "*(int *)(puVar33 + 0x1ac74) + -0x230" (pointer_expression "*(int *)(puVar33 + 0x1ac74)" * (cast_expression "(int *)(puVar33 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x1ac74)" ( (binary_expression "puVar33 + 0x1ac74" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "bVar15 = iVar6 == 0;" (assignment_expression "bVar15 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) }))) }))) })) (expression_statement "pdVar25->simple_locale = bVar15;" (assignment_expression "pdVar25->simple_locale = bVar15" (field_expression "pdVar25->simple_locale" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar20 = &pdVar25->localeinfo;" (assignment_expression "plVar20 = &pdVar25->localeinfo" identifier = (pointer_expression "&pdVar25->localeinfo" & (field_expression "pdVar25->localeinfo" identifier -> field_identifier))) ;) (expression_statement "pcVar31 = pcVar27 + 0x500;" (assignment_expression "pcVar31 = pcVar27 + 0x500" identifier = (binary_expression "pcVar27 + 0x500" identifier + number_literal)) ;) (do_statement "do {\n      cVar16 = pcVar27[1];\n      cVar32 = pcVar27[2];\n      cVar5 = pcVar27[3];\n      uVar29 = *(undefined4 *)(pcVar27 + 4);\n      uVar26 = *(undefined4 *)(pcVar27 + 8);\n      uVar22 = *(undefined4 *)(pcVar27 + 0xc);\n      plVar20->multibyte = (_Bool)pcVar27[0];\n      plVar20->using_utf8 = (_Bool)cVar16;\n      plVar20->sbclen[0] = cVar32;\n      plVar20->sbclen[1] = cVar5;\n      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;\n      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;\n      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;\n      pcVar27 = pcVar27 + 0x10;\n      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);\n    } while (pcVar27 != pcVar31);" do (compound_statement "{\n      cVar16 = pcVar27[1];\n      cVar32 = pcVar27[2];\n      cVar5 = pcVar27[3];\n      uVar29 = *(undefined4 *)(pcVar27 + 4);\n      uVar26 = *(undefined4 *)(pcVar27 + 8);\n      uVar22 = *(undefined4 *)(pcVar27 + 0xc);\n      plVar20->multibyte = (_Bool)pcVar27[0];\n      plVar20->using_utf8 = (_Bool)cVar16;\n      plVar20->sbclen[0] = cVar32;\n      plVar20->sbclen[1] = cVar5;\n      *(undefined4 *)(plVar20->sbclen + 2) = uVar29;\n      *(undefined4 *)(plVar20->sbclen + 6) = uVar26;\n      *(undefined4 *)(plVar20->sbclen + 10) = uVar22;\n      pcVar27 = pcVar27 + 0x10;\n      plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);\n    }" { (expression_statement "cVar16 = pcVar27[1];" (assignment_expression "cVar16 = pcVar27[1]" identifier = (subscript_expression "pcVar27[1]" identifier [ number_literal ])) ;) (expression_statement "cVar32 = pcVar27[2];" (assignment_expression "cVar32 = pcVar27[2]" identifier = (subscript_expression "pcVar27[2]" identifier [ number_literal ])) ;) (expression_statement "cVar5 = pcVar27[3];" (assignment_expression "cVar5 = pcVar27[3]" identifier = (subscript_expression "pcVar27[3]" identifier [ number_literal ])) ;) (expression_statement "uVar29 = *(undefined4 *)(pcVar27 + 4);" (assignment_expression "uVar29 = *(undefined4 *)(pcVar27 + 4)" identifier = (pointer_expression "*(undefined4 *)(pcVar27 + 4)" * (cast_expression "(undefined4 *)(pcVar27 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 4)" ( (binary_expression "pcVar27 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)(pcVar27 + 8);" (assignment_expression "uVar26 = *(undefined4 *)(pcVar27 + 8)" identifier = (pointer_expression "*(undefined4 *)(pcVar27 + 8)" * (cast_expression "(undefined4 *)(pcVar27 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 8)" ( (binary_expression "pcVar27 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = *(undefined4 *)(pcVar27 + 0xc);" (assignment_expression "uVar22 = *(undefined4 *)(pcVar27 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pcVar27 + 0xc)" * (cast_expression "(undefined4 *)(pcVar27 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0xc)" ( (binary_expression "pcVar27 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "plVar20->multibyte = (_Bool)pcVar27[0];" (assignment_expression "plVar20->multibyte = (_Bool)pcVar27[0]" (field_expression "plVar20->multibyte" identifier -> field_identifier) = (cast_expression "(_Bool)pcVar27[0]" ( (type_descriptor "_Bool" type_identifier) ) (subscript_expression "pcVar27[0]" identifier [ number_literal ]))) ;) (expression_statement "plVar20->using_utf8 = (_Bool)cVar16;" (assignment_expression "plVar20->using_utf8 = (_Bool)cVar16" (field_expression "plVar20->using_utf8" identifier -> field_identifier) = (cast_expression "(_Bool)cVar16" ( (type_descriptor "_Bool" type_identifier) ) identifier)) ;) (expression_statement "plVar20->sbclen[0] = cVar32;" (assignment_expression "plVar20->sbclen[0] = cVar32" (subscript_expression "plVar20->sbclen[0]" (field_expression "plVar20->sbclen" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "plVar20->sbclen[1] = cVar5;" (assignment_expression "plVar20->sbclen[1] = cVar5" (subscript_expression "plVar20->sbclen[1]" (field_expression "plVar20->sbclen" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(plVar20->sbclen + 2) = uVar29;" (assignment_expression "*(undefined4 *)(plVar20->sbclen + 2) = uVar29" (pointer_expression "*(undefined4 *)(plVar20->sbclen + 2)" * (cast_expression "(undefined4 *)(plVar20->sbclen + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar20->sbclen + 2)" ( (binary_expression "plVar20->sbclen + 2" (field_expression "plVar20->sbclen" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(plVar20->sbclen + 6) = uVar26;" (assignment_expression "*(undefined4 *)(plVar20->sbclen + 6) = uVar26" (pointer_expression "*(undefined4 *)(plVar20->sbclen + 6)" * (cast_expression "(undefined4 *)(plVar20->sbclen + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar20->sbclen + 6)" ( (binary_expression "plVar20->sbclen + 6" (field_expression "plVar20->sbclen" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(plVar20->sbclen + 10) = uVar22;" (assignment_expression "*(undefined4 *)(plVar20->sbclen + 10) = uVar22" (pointer_expression "*(undefined4 *)(plVar20->sbclen + 10)" * (cast_expression "(undefined4 *)(plVar20->sbclen + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar20->sbclen + 10)" ( (binary_expression "plVar20->sbclen + 10" (field_expression "plVar20->sbclen" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar27 = pcVar27 + 0x10;" (assignment_expression "pcVar27 = pcVar27 + 0x10" identifier = (binary_expression "pcVar27 + 0x10" identifier + number_literal)) ;) (expression_statement "plVar20 = (localeinfo *)(plVar20->sbclen + 0xe);" (assignment_expression "plVar20 = (localeinfo *)(plVar20->sbclen + 0xe)" identifier = (cast_expression "(localeinfo *)(plVar20->sbclen + 0xe)" ( (type_descriptor "localeinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar20->sbclen + 0xe)" ( (binary_expression "plVar20->sbclen + 0xe" (field_expression "plVar20->sbclen" identifier -> field_identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pcVar27 != pcVar31)" ( (binary_expression "pcVar27 != pcVar31" identifier != identifier) )) ;) (expression_statement "cVar16 = pcVar27[1];" (assignment_expression "cVar16 = pcVar27[1]" identifier = (subscript_expression "pcVar27[1]" identifier [ number_literal ])) ;) (expression_statement "cVar32 = pcVar27[2];" (assignment_expression "cVar32 = pcVar27[2]" identifier = (subscript_expression "pcVar27[2]" identifier [ number_literal ])) ;) (expression_statement "cVar5 = pcVar27[3];" (assignment_expression "cVar5 = pcVar27[3]" identifier = (subscript_expression "pcVar27[3]" identifier [ number_literal ])) ;) (expression_statement "plVar20->multibyte = (_Bool)pcVar27[0];" (assignment_expression "plVar20->multibyte = (_Bool)pcVar27[0]" (field_expression "plVar20->multibyte" identifier -> field_identifier) = (cast_expression "(_Bool)pcVar27[0]" ( (type_descriptor "_Bool" type_identifier) ) (subscript_expression "pcVar27[0]" identifier [ number_literal ]))) ;) (expression_statement "plVar20->using_utf8 = (_Bool)cVar16;" (assignment_expression "plVar20->using_utf8 = (_Bool)cVar16" (field_expression "plVar20->using_utf8" identifier -> field_identifier) = (cast_expression "(_Bool)cVar16" ( (type_descriptor "_Bool" type_identifier) ) identifier)) ;) (expression_statement "plVar20->sbclen[0] = cVar32;" (assignment_expression "plVar20->sbclen[0] = cVar32" (subscript_expression "plVar20->sbclen[0]" (field_expression "plVar20->sbclen" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "plVar20->sbclen[1] = cVar5;" (assignment_expression "plVar20->sbclen[1] = cVar5" (subscript_expression "plVar20->sbclen[1]" (field_expression "plVar20->sbclen" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1);" (assignment_expression "pdVar25->fast = (_Bool)((pdVar25->localeinfo).multibyte ^ 1)" (field_expression "pdVar25->fast" identifier -> field_identifier) = (call_expression "(_Bool)((pdVar25->localeinfo).multibyte ^ 1)" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "((pdVar25->localeinfo).multibyte ^ 1)" ( (binary_expression "(pdVar25->localeinfo).multibyte ^ 1" (field_expression "(pdVar25->localeinfo).multibyte" (parenthesized_expression "(pdVar25->localeinfo)" ( (field_expression "pdVar25->localeinfo" identifier -> field_identifier) )) . field_identifier) ^ number_literal) )))) ;) (expression_statement "pdVar25->canychar = 0xffffffff;" (assignment_expression "pdVar25->canychar = 0xffffffff" (field_expression "pdVar25->canychar" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pdVar25->lex).cur_mb_len = 1;" (assignment_expression "(pdVar25->lex).cur_mb_len = 1" (field_expression "(pdVar25->lex).cur_mb_len" (parenthesized_expression "(pdVar25->lex)" ( (field_expression "pdVar25->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pdVar25->syntax).syntax_bits_set = true;" (assignment_expression "(pdVar25->syntax).syntax_bits_set = true" (field_expression "(pdVar25->syntax).syntax_bits_set" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) = true) ;) (expression_statement "(pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0);" (assignment_expression "(pdVar25->syntax).case_fold = SUB41((rVar28 << 9) >> 0x1f,0)" (field_expression "(pdVar25->syntax).case_fold" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) = (call_expression "SUB41((rVar28 << 9) >> 0x1f,0)" identifier (argument_list "((rVar28 << 9) >> 0x1f,0)" ( (binary_expression "(rVar28 << 9) >> 0x1f" (parenthesized_expression "(rVar28 << 9)" ( (binary_expression "rVar28 << 9" identifier << number_literal) )) >> number_literal) , number_literal )))) ;) (expression_statement "(pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1);" (assignment_expression "(pdVar25->syntax).anchor = (_Bool)((byte)uVar30 & 1)" (field_expression "(pdVar25->syntax).anchor" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) = (call_expression "(_Bool)((byte)uVar30 & 1)" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "((byte)uVar30 & 1)" ( (binary_expression "(byte)uVar30 & 1" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar21 = '\n';" (assignment_expression "uVar21 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (if_statement "if ((uVar30 & 2) != 0) {\n      uVar21 = '\0';\n    }" if (parenthesized_expression "((uVar30 & 2) != 0)" ( (binary_expression "(uVar30 & 2) != 0" (parenthesized_expression "(uVar30 & 2)" ( (binary_expression "uVar30 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar21 = '\0';\n    }" { (expression_statement "uVar21 = '\0';" (assignment_expression "uVar21 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "(pdVar25->syntax).eolbyte = uVar21;" (assignment_expression "(pdVar25->syntax).eolbyte = uVar21" (field_expression "(pdVar25->syntax).eolbyte" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pdVar25->syntax).syntax_bits = rVar28;" (assignment_expression "(pdVar25->syntax).syntax_bits = rVar28" (field_expression "(pdVar25->syntax).syntax_bits" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "uVar30 = 0xffffff80;" (assignment_expression "uVar30 = 0xffffff80" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(puVar33 + 0x1acf8);" (assignment_expression "iVar6 = *(int *)(puVar33 + 0x1acf8)" identifier = (pointer_expression "*(int *)(puVar33 + 0x1acf8)" * (cast_expression "(int *)(puVar33 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x1acf8)" ( (binary_expression "puVar33 + 0x1acf8" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar33 + 0x1ac74);" (assignment_expression "iVar12 = *(int *)(puVar33 + 0x1ac74)" identifier = (pointer_expression "*(int *)(puVar33 + 0x1ac74)" * (cast_expression "(int *)(puVar33 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x1ac74)" ( (binary_expression "puVar33 + 0x1ac74" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }\n      if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }\n      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;\n      uVar30 = uVar30 + 1;\n    } while (uVar30 != 0x80);" do (compound_statement "{\n      if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }\n      if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }\n      (pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;\n      uVar30 = uVar30 + 1;\n    }" { (if_statement "if (((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)) {\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }\n      else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }" if (parenthesized_expression "(((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false))" ( (binary_expression "((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)) &&\n         ((pdVar25->syntax).anchor == false)" (parenthesized_expression "((uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff))" ( (binary_expression "(uint)(pdVar25->syntax).eolbyte == (uVar30 & 0xff)" (field_expression "(uint)(pdVar25->syntax).eolbyte" (call_expression "(uint)(pdVar25->syntax)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) ))) . field_identifier) == (parenthesized_expression "(uVar30 & 0xff)" ( (binary_expression "uVar30 & 0xff" identifier & number_literal) ))) )) && (parenthesized_expression "((pdVar25->syntax).anchor == false)" ( (binary_expression "(pdVar25->syntax).anchor == false" (field_expression "(pdVar25->syntax).anchor" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n        (pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';\n        (*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);\n        cVar16 = (pdVar25->localeinfo).using_utf8;\n      }" { (expression_statement "(pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04';" (assignment_expression "(pdVar25->syntax).sbit[uVar30 & 0xff] = '\x04'" (subscript_expression "(pdVar25->syntax).sbit[uVar30 & 0xff]" (field_expression "(pdVar25->syntax).sbit" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "uVar30 & 0xff" identifier & number_literal) ]) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "(*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline);" (call_expression "(*(code *)(iVar6 + -0xc90))(uVar30 & 0xff,&(pdVar25->syntax).newline)" (parenthesized_expression "(*(code *)(iVar6 + -0xc90))" ( (pointer_expression "*(code *)(iVar6 + -0xc90)" * (cast_expression "(code *)(iVar6 + -0xc90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0xc90)" ( (binary_expression "iVar6 + -0xc90" identifier + number_literal) )))) )) (argument_list "(uVar30 & 0xff,&(pdVar25->syntax).newline)" ( (binary_expression "uVar30 & 0xff" identifier & number_literal) , (pointer_expression "&(pdVar25->syntax).newline" & (field_expression "(pdVar25->syntax).newline" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ))) ;) (expression_statement "cVar16 = (pdVar25->localeinfo).using_utf8;" (assignment_expression "cVar16 = (pdVar25->localeinfo).using_utf8" identifier = (field_expression "(pdVar25->localeinfo).using_utf8" (parenthesized_expression "(pdVar25->localeinfo)" ( (field_expression "pdVar25->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }" else (compound_statement "{\n        uVar23 = uVar30 & 0xff;\n        if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n      }" { (expression_statement "uVar23 = uVar30 & 0xff;" (assignment_expression "uVar23 = uVar30 & 0xff" identifier = (binary_expression "uVar30 & 0xff" identifier & number_literal)) ;) (if_statement "if (((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))) {\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }\n        else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }" if (parenthesized_expression "(((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f))))" ( (binary_expression "((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff) ||\n           ((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))" (parenthesized_expression "((pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff)" ( (binary_expression "(pdVar25->localeinfo).sbctowc[uVar23] == 0xffffffff" (subscript_expression "(pdVar25->localeinfo).sbctowc[uVar23]" (field_expression "(pdVar25->localeinfo).sbctowc" (parenthesized_expression "(pdVar25->localeinfo)" ( (field_expression "pdVar25->localeinfo" identifier -> field_identifier) )) . field_identifier) [ identifier ]) == number_literal) )) || (parenthesized_expression "((piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)))" ( (parenthesized_expression "(piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f))" ( (comma_expression "piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))(),\n            (*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)" (assignment_expression "piVar19 = (int *)(**(code **)(puVar33 + 0x1ae70))()" identifier = (cast_expression "(int *)(**(code **)(puVar33 + 0x1ae70))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar33 + 0x1ae70))()" (parenthesized_expression "(**(code **)(puVar33 + 0x1ae70))" ( (pointer_expression "**(code **)(puVar33 + 0x1ae70)" * (pointer_expression "*(code **)(puVar33 + 0x1ae70)" * (cast_expression "(code **)(puVar33 + 0x1ae70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x1ae70)" ( (binary_expression "puVar33 + 0x1ae70" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "(*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0 && ((uVar30 & 0xff) != 0x5f)" (binary_expression "(*(ushort *)(*piVar19 + uVar23 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar19 + uVar23 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar19 + uVar23 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar19 + uVar23 * 2)" * (cast_expression "(ushort *)(*piVar19 + uVar23 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + uVar23 * 2)" ( (binary_expression "*piVar19 + uVar23 * 2" (pointer_expression "*piVar19" * identifier) + (binary_expression "uVar23 * 2" identifier * number_literal)) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((uVar30 & 0xff) != 0x5f)" ( (binary_expression "(uVar30 & 0xff) != 0x5f" (parenthesized_expression "(uVar30 & 0xff)" ( (binary_expression "uVar30 & 0xff" identifier & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n          (pdVar25->syntax).sbit[uVar23] = '\x01';\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }" { (expression_statement "(pdVar25->syntax).sbit[uVar23] = '\x01';" (assignment_expression "(pdVar25->syntax).sbit[uVar23] = '\x01'" (subscript_expression "(pdVar25->syntax).sbit[uVar23]" (field_expression "(pdVar25->syntax).sbit" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) [ identifier ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "cVar16 = (pdVar25->localeinfo).using_utf8;" (assignment_expression "cVar16 = (pdVar25->localeinfo).using_utf8" identifier = (field_expression "(pdVar25->localeinfo).using_utf8" (parenthesized_expression "(pdVar25->localeinfo)" ( (field_expression "pdVar25->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }" else (compound_statement "{\n          (pdVar25->syntax).sbit[uVar23] = '\x02';\n          (*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);\n          cVar16 = (pdVar25->localeinfo).using_utf8;\n        }" { (expression_statement "(pdVar25->syntax).sbit[uVar23] = '\x02';" (assignment_expression "(pdVar25->syntax).sbit[uVar23] = '\x02'" (subscript_expression "(pdVar25->syntax).sbit[uVar23]" (field_expression "(pdVar25->syntax).sbit" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) [ identifier ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "(*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters);" (call_expression "(*(code *)(iVar6 + -0xc90))(uVar23,&(pdVar25->syntax).letters)" (parenthesized_expression "(*(code *)(iVar6 + -0xc90))" ( (pointer_expression "*(code *)(iVar6 + -0xc90)" * (cast_expression "(code *)(iVar6 + -0xc90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0xc90)" ( (binary_expression "iVar6 + -0xc90" identifier + number_literal) )))) )) (argument_list "(uVar23,&(pdVar25->syntax).letters)" ( identifier , (pointer_expression "&(pdVar25->syntax).letters" & (field_expression "(pdVar25->syntax).letters" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier)) ))) ;) (expression_statement "cVar16 = (pdVar25->localeinfo).using_utf8;" (assignment_expression "cVar16 = (pdVar25->localeinfo).using_utf8" identifier = (field_expression "(pdVar25->localeinfo).using_utf8" (parenthesized_expression "(pdVar25->localeinfo)" ( (field_expression "pdVar25->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) }))) }))) (if_statement "if (cVar16 == '\0') {\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }\n      else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }" if (parenthesized_expression "(cVar16 == '\0')" ( (binary_expression "cVar16 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);\n        bVar15 = iVar14 != 0;\n      }" { (expression_statement "iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff);" (assignment_expression "iVar14 = (**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff)" identifier = (call_expression "(**(code **)(puVar33 + 0x1af4c))(iVar12 + -0x228,uVar30 & 0xff)" (parenthesized_expression "(**(code **)(puVar33 + 0x1af4c))" ( (pointer_expression "**(code **)(puVar33 + 0x1af4c)" * (pointer_expression "*(code **)(puVar33 + 0x1af4c)" * (cast_expression "(code **)(puVar33 + 0x1af4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x1af4c)" ( (binary_expression "puVar33 + 0x1af4c" identifier + number_literal) ))))) )) (argument_list "(iVar12 + -0x228,uVar30 & 0xff)" ( (binary_expression "iVar12 + -0x228" identifier + number_literal) , (binary_expression "uVar30 & 0xff" identifier & number_literal) )))) ;) (expression_statement "bVar15 = iVar14 != 0;" (assignment_expression "bVar15 = iVar14 != 0" identifier = (binary_expression "iVar14 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }" else (compound_statement "{\n        bVar15 = (uVar30 & 0xc0) != 0x80;\n      }" { (expression_statement "bVar15 = (uVar30 & 0xc0) != 0x80;" (assignment_expression "bVar15 = (uVar30 & 0xc0) != 0x80" identifier = (binary_expression "(uVar30 & 0xc0) != 0x80" (parenthesized_expression "(uVar30 & 0xc0)" ( (binary_expression "uVar30 & 0xc0" identifier & number_literal) )) != number_literal)) ;) }))) (expression_statement "(pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15;" (assignment_expression "(pdVar25->syntax).never_trail[uVar30 & 0xff] = bVar15" (subscript_expression "(pdVar25->syntax).never_trail[uVar30 & 0xff]" (field_expression "(pdVar25->syntax).never_trail" (parenthesized_expression "(pdVar25->syntax)" ( (field_expression "pdVar25->syntax" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "uVar30 & 0xff" identifier & number_literal) ]) = identifier) ;) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar30 != 0x80)" ( (binary_expression "uVar30 != 0x80" identifier != number_literal) )) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)" identifier (parameter_list "(uint param_1,uint param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined1 uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "char cVar18;" primitive_type identifier ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_000424f0;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_000424f0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "param_3[0x96] = param_1;" (assignment_expression "param_3[0x96] = param_1" (subscript_expression "param_3[0x96]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0x97] = param_2;" (assignment_expression "param_3[0x97] = param_2" (subscript_expression "param_3[0x97]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0x98] = 0xffffffff;" (assignment_expression "param_3[0x98] = 0xffffffff" (subscript_expression "param_3[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_3 + 0xa3) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xa3) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xa3)" * (cast_expression "(undefined1 *)(param_3 + 0xa3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xa3)" ( (binary_expression "param_3 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar8 = *(char *)(param_3 + 1);" (assignment_expression "cVar8 = *(char *)(param_3 + 1)" identifier = (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) ))))) ;) (if_statement "if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -600,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -600" identifier + number_literal) , number_literal )))) ;) (expression_statement "dfaerror(uVar4);" (call_expression "dfaerror(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (if_statement "if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }" if (parenthesized_expression "(param_3[0xab] == 0)" ( (binary_expression "param_3[0xab] == 0" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    FUN_0002041c(param_3,0x10b);\n  }" { (expression_statement "FUN_0002041c(param_3,0x10b);" (call_expression "FUN_0002041c(param_3,0x10b)" identifier (argument_list "(param_3,0x10b)" ( identifier , number_literal ))) ;) })) (expression_statement "uVar2 = FUN_000249c0(param_3);" (assignment_expression "uVar2 = FUN_000249c0(param_3)" identifier = (call_expression "FUN_000249c0(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "param_3[0xa4] = uVar2;" (assignment_expression "param_3[0xa4] = uVar2" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0xa5] = param_3[0xa9];" (assignment_expression "param_3[0xa5] = param_3[0xa9]" (subscript_expression "param_3[0xa5]" identifier [ number_literal ]) = (subscript_expression "param_3[0xa9]" identifier [ number_literal ])) ;) (expression_statement "FUN_00025d3c(param_3);" (call_expression "FUN_00025d3c(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (if_statement "if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }" if (parenthesized_expression "(param_3[0xa4] != 0xffffffff)" ( (binary_expression "param_3[0xa4] != 0xffffffff" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x244,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x244" identifier + number_literal) , number_literal )))) ;) (expression_statement "dfaerror(uVar4);" (call_expression "dfaerror(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "FUN_0002041c(param_3,~param_3[0xab]);" (call_expression "FUN_0002041c(param_3,~param_3[0xab])" identifier (argument_list "(param_3,~param_3[0xab])" ( identifier , (unary_expression "~param_3[0xab]" ~ (subscript_expression "param_3[0xab]" identifier [ number_literal ])) ))) ;) (expression_statement "FUN_0002041c(param_3,0x105);" (call_expression "FUN_0002041c(param_3,0x105)" identifier (argument_list "(param_3,0x105)" ( identifier , number_literal ))) ;) (expression_statement "uVar2 = param_3[0xab];" (assignment_expression "uVar2 = param_3[0xab]" identifier = (subscript_expression "param_3[0xab]" identifier [ number_literal ])) ;) (if_statement "if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }" { (expression_statement "FUN_0002041c(param_3,0x106);" (call_expression "FUN_0002041c(param_3,0x106)" identifier (argument_list "(param_3,0x106)" ( identifier , number_literal ))) ;) (expression_statement "uVar2 = param_3[0xab];" (assignment_expression "uVar2 = param_3[0xab]" identifier = (subscript_expression "param_3[0xab]" identifier [ number_literal ])) ;) })) (expression_statement "param_3[0xab] = uVar2 + 1;" (assignment_expression "param_3[0xab] = uVar2 + 1" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar3 = (uint *)dfaalloc();" (assignment_expression "puVar3 = (uint *)dfaalloc()" identifier = (cast_expression "(uint *)dfaalloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dfaalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar14 = param_3;" (assignment_expression "puVar14 = param_3" identifier = identifier) ;) (expression_statement "puVar11 = puVar3;" (assignment_expression "puVar11 = puVar3" identifier = identifier) ;) (do_statement "do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);" do (compound_statement "{\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  }" { (expression_statement "uVar16 = *puVar14;" (assignment_expression "uVar16 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar15 = puVar14[1];" (assignment_expression "uVar15 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar14[2];" (assignment_expression "uVar12 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar14[3];" (assignment_expression "uVar2 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar11 = uVar16;" (assignment_expression "*puVar11 = uVar16" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "puVar11[1] = uVar15;" (assignment_expression "puVar11[1] = uVar15" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[2] = uVar12;" (assignment_expression "puVar11[2] = uVar12" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[3] = uVar2;" (assignment_expression "puVar11[3] = uVar2" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + 4;" (assignment_expression "puVar14 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 4;" (assignment_expression "puVar11 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != param_3 + 0x20c)" ( (binary_expression "puVar14 != param_3 + 0x20c" identifier != (binary_expression "param_3 + 0x20c" identifier + number_literal)) )) ;) (expression_statement "*puVar11 = *puVar14;" (assignment_expression "*puVar11 = *puVar14" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "*(undefined1 *)(puVar3 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0xcc)" * (cast_expression "(undefined1 *)(puVar3 + 0xcc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xcc)" ( (binary_expression "puVar3 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);" (assignment_expression "puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944)" (subscript_expression "puVar3[0xca]" identifier [ number_literal ]) = (call_expression "(uint)(PTR_LAB_000421fc + 0x2944)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(PTR_LAB_000421fc + 0x2944)" ( (binary_expression "PTR_LAB_000421fc + 0x2944" identifier + number_literal) )))) ;) (expression_statement "puVar3[0xb4] = 0;" (assignment_expression "puVar3[0xb4] = 0" (subscript_expression "puVar3[0xb4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb5] = 0;" (assignment_expression "puVar3[0xb5] = 0" (subscript_expression "puVar3[0xb5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb6] = 0;" (assignment_expression "puVar3[0xb6] = 0" (subscript_expression "puVar3[0xb6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb7] = 0;" (assignment_expression "puVar3[0xb7] = 0" (subscript_expression "puVar3[0xb7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xbb] = 0;" (assignment_expression "puVar3[0xbb] = 0" (subscript_expression "puVar3[0xbb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xbc] = 0;" (assignment_expression "puVar3[0xbc] = 0" (subscript_expression "puVar3[0xbc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb9] = 0;" (assignment_expression "puVar3[0xb9] = 0" (subscript_expression "puVar3[0xb9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xbd] = 0;" (assignment_expression "puVar3[0xbd] = 0" (subscript_expression "puVar3[0xbd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc0] = 0;" (assignment_expression "puVar3[0xc0] = 0" (subscript_expression "puVar3[0xc0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc1] = 0;" (assignment_expression "puVar3[0xc1] = 0" (subscript_expression "puVar3[0xc1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc2] = 0;" (assignment_expression "puVar3[0xc2] = 0" (subscript_expression "puVar3[0xc2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc3] = 0;" (assignment_expression "puVar3[0xc3] = 0" (subscript_expression "puVar3[0xc3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = puVar3[0x94];" (assignment_expression "uVar2 = puVar3[0x94]" identifier = (subscript_expression "puVar3[0x94]" identifier [ number_literal ])) ;) (if_statement "if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    \n    xalloc_die();\n  }" if (parenthesized_expression "((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0)" ( (binary_expression "(int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0" (binary_expression "(int)(uVar2 << 5) < 0" (cast_expression "(int)(uVar2 << 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 5)" ( (binary_expression "uVar2 << 5" identifier << number_literal) ))) < number_literal) || (binary_expression "uVar2 >> 0x1b != 0" (binary_expression "uVar2 >> 0x1b" identifier >> number_literal) != number_literal)) )) (compound_statement "{\n                    \n    xalloc_die();\n  }" { (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar2 = xmalloc(uVar2 << 5);" (assignment_expression "uVar2 = xmalloc(uVar2 << 5)" identifier = (call_expression "xmalloc(uVar2 << 5)" identifier (argument_list "(uVar2 << 5)" ( (binary_expression "uVar2 << 5" identifier << number_literal) )))) ;) (expression_statement "puVar3[0x92] = uVar2;" (assignment_expression "puVar3[0x92] = uVar2" (subscript_expression "puVar3[0x92]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = param_3[0x93] << 5;" (assignment_expression "uVar12 = param_3[0x93] << 5" identifier = (binary_expression "param_3[0x93] << 5" (subscript_expression "param_3[0x93]" identifier [ number_literal ]) << number_literal)) ;) (if_statement "if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" if (parenthesized_expression "(param_3[0x93] == 0)" ( (binary_expression "param_3[0x93] == 0" (subscript_expression "param_3[0x93]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar2 = param_3[0xa7];\n  }" { (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" identifier = (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" else (compound_statement "{\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" { (expression_statement "(*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);" (call_expression "(*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92])" (parenthesized_expression "(*(code *)PTR_memcpy_000424f4)" ( (pointer_expression "*(code *)PTR_memcpy_000424f4" * (cast_expression "(code *)PTR_memcpy_000424f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,param_3[0x92])" ( identifier , (subscript_expression "param_3[0x92]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" identifier = (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) ;) }))) (if_statement "if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    \n    xalloc_die();\n  }" if (parenthesized_expression "((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0)" ( (binary_expression "(int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0" (binary_expression "(int)(uVar2 << 3) < 0" (cast_expression "(int)(uVar2 << 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 3)" ( (binary_expression "uVar2 << 3" identifier << number_literal) ))) < number_literal) || (binary_expression "uVar2 >> 0x1d != 0" (binary_expression "uVar2 >> 0x1d" identifier >> number_literal) != number_literal)) )) (compound_statement "{\n                    \n    xalloc_die();\n  }" { (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar2 = xmalloc(uVar2 << 3);" (assignment_expression "uVar2 = xmalloc(uVar2 << 3)" identifier = (call_expression "xmalloc(uVar2 << 3)" identifier (argument_list "(uVar2 << 3)" ( (binary_expression "uVar2 << 3" identifier << number_literal) )))) ;) (expression_statement "puVar3[0xa6] = uVar2;" (assignment_expression "puVar3[0xa6] = uVar2" (subscript_expression "puVar3[0xa6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" identifier = (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xa8] = uVar2 << 1;" (assignment_expression "puVar3[0xa8] = uVar2 << 1" (subscript_expression "puVar3[0xa8]" identifier [ number_literal ]) = (binary_expression "uVar2 << 1" identifier << number_literal)) ;) (expression_statement "puVar20 = PTR_UINT_00042178;" (assignment_expression "puVar20 = PTR_UINT_00042178" identifier = identifier) ;) (if_statement "if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }" { (expression_statement "puVar3[0xa7] = 0;" (assignment_expression "puVar3[0xa7] = 0" (subscript_expression "puVar3[0xa7]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002748c:\n    dfafree(puVar3);" statement_identifier : (expression_statement "dfafree(puVar3);" (call_expression "dfafree(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;)) (expression_statement "(*(code *)PTR_free_000424fc)(puVar3);" (call_expression "(*(code *)PTR_free_000424fc)(puVar3)" (parenthesized_expression "(*(code *)PTR_free_000424fc)" ( (pointer_expression "*(code *)PTR_free_000424fc" * (cast_expression "(code *)PTR_free_000424fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "puVar14 = (uint *)param_3[0xa7];" (assignment_expression "puVar14 = (uint *)param_3[0xa7]" identifier = (cast_expression "(uint *)param_3[0xa7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" else (compound_statement "{\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "cVar19 = '\0';" (assignment_expression "cVar19 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);" do (compound_statement "{\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    }" { (expression_statement "iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);" (assignment_expression "iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4)" identifier = (pointer_expression "*(int *)(param_3[0xa6] + uVar15 * 4)" * (cast_expression "(int *)(param_3[0xa6] + uVar15 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[0xa6] + uVar15 * 4)" ( (binary_expression "param_3[0xa6] + uVar15 * 4" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar5 = iVar13 - 0x10a;" (assignment_expression "uVar5 = iVar13 - 0x10a" identifier = (binary_expression "iVar13 - 0x10a" identifier - number_literal)) ;) (if_statement "if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }" if (parenthesized_expression "(uVar5 < 10)" ( (binary_expression "uVar5 < 10" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }" { (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" ( (binary_expression "&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar20 + uVar5 * 4 + 0x7c)" * (cast_expression "(int *)(puVar20 + uVar5 * 4 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + uVar5 * 4 + 0x7c)" ( (binary_expression "puVar20 + uVar5 * 4 + 0x7c" (binary_expression "puVar20 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar5 = uVar2 + 1;" (assignment_expression "uVar5 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;" (assignment_expression "*(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13" (pointer_expression "*(int *)(puVar3[0xa6] + uVar2 * 4)" * (cast_expression "(int *)(puVar3[0xa6] + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3[0xa6] + uVar2 * 4)" ( (binary_expression "puVar3[0xa6] + uVar2 * 4" (subscript_expression "puVar3[0xa6]" identifier [ number_literal ]) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);" (assignment_expression "uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_3[0xa6] + uVar15 * 4)" * (cast_expression "(uint *)(param_3[0xa6] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[0xa6] + uVar15 * 4)" ( (binary_expression "param_3[0xa6] + uVar15 * 4" (subscript_expression "param_3[0xa6]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "cVar18 = cVar8;" (assignment_expression "cVar18 = cVar8" identifier = identifier) ;) (if_statement "if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }" if (parenthesized_expression "((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2))" ( (binary_expression "(0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)" (parenthesized_expression "(0xff < uVar2)" ( (binary_expression "0xff < uVar2" number_literal < identifier) )) && (parenthesized_expression "(cVar18 = cVar19, 0x113 < (int)uVar2)" ( (comma_expression "cVar18 = cVar19, 0x113 < (int)uVar2" (assignment_expression "cVar18 = cVar19" identifier = identifier) , (binary_expression "0x113 < (int)uVar2" number_literal < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n        cVar18 = cVar8;\n      }" { (expression_statement "cVar18 = cVar8;" (assignment_expression "cVar18 = cVar8" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar5;" (assignment_expression "uVar2 = uVar5" identifier = identifier) ;) (expression_statement "cVar19 = cVar18;" (assignment_expression "cVar19 = cVar18" identifier = identifier) ;) }) while (parenthesized_expression "(uVar15 < param_3[0xa7])" ( (binary_expression "uVar15 < param_3[0xa7]" identifier < (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) )) ;) (expression_statement "puVar3[0xa7] = uVar5;" (assignment_expression "puVar3[0xa7] = uVar5" (subscript_expression "puVar3[0xa7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;" if (parenthesized_expression "((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0'))" ( (binary_expression "(cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')" (parenthesized_expression "(cVar18 == '\0')" ( (binary_expression "cVar18 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(param_3 + 0xcc) == '\0')" ( (binary_expression "*(char *)(param_3 + 0xcc) == '\0'" (pointer_expression "*(char *)(param_3 + 0xcc)" * (cast_expression "(char *)(param_3 + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xcc)" ( (binary_expression "param_3 + 0xcc" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0002748c;" goto statement_identifier ;)) (expression_statement "param_3[0xb5] = (uint)puVar3;" (assignment_expression "param_3[0xb5] = (uint)puVar3" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) = (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar14 = (uint *)param_3[0xa7];" (assignment_expression "puVar14 = (uint *)param_3[0xa7]" identifier = (cast_expression "(uint *)param_3[0xa7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) }))) (expression_statement "puVar11 = (uint *)0x0;" (assignment_expression "puVar11 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" if (parenthesized_expression "(puVar14 == (uint *)0x0)" ( (binary_expression "puVar14 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }" { (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;" if (parenthesized_expression "(*(char *)((int)param_3 + 0x331) == '\0')" ( (binary_expression "*(char *)((int)param_3 + 0x331) == '\0'" (pointer_expression "*(char *)((int)param_3 + 0x331)" * (cast_expression "(char *)((int)param_3 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x331)" ( (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (labeled_statement "LAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" statement_identifier : (if_statement "if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" if (parenthesized_expression "(param_3[0xb5] != 0)" ( (binary_expression "param_3[0xb5] != 0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" { (expression_statement "dfafree();" (call_expression "dfafree()" identifier (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_free_000424fc)(param_3[0xb5]);" (call_expression "(*(code *)PTR_free_000424fc)(param_3[0xb5])" (parenthesized_expression "(*(code *)PTR_free_000424fc)" ( (pointer_expression "*(code *)PTR_free_000424fc" * (cast_expression "(code *)PTR_free_000424fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3[0xb5])" ( (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) ))) ;) (expression_statement "param_3[0xb5] = 0;" (assignment_expression "param_3[0xb5] = 0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" else (compound_statement "{\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" { (expression_statement "piVar9 = (int *)param_3[0xa6];" (assignment_expression "piVar9 = (int *)param_3[0xa6]" identifier = (cast_expression "(int *)param_3[0xa6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ]))) ;) (do_statement "do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);" do (compound_statement "{\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    }" { (expression_statement "iVar13 = *piVar9;" (assignment_expression "iVar13 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "uVar12 = (uint)(iVar13 < 0x112);" (assignment_expression "uVar12 = (uint)(iVar13 < 0x112)" identifier = (call_expression "(uint)(iVar13 < 0x112)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 < 0x112)" ( (binary_expression "iVar13 < 0x112" identifier < number_literal) )))) ;) (if_statement "if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }" if (parenthesized_expression "(0x10d < iVar13)" ( (binary_expression "0x10d < iVar13" number_literal < identifier) )) (compound_statement "{\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }" { (if_statement "if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }" { (if_statement "if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }" if (parenthesized_expression "(iVar13 < 0x114)" ( (binary_expression "iVar13 < 0x114" identifier < number_literal) )) (compound_statement "{\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }" { (labeled_statement "LAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);" statement_identifier : (expression_statement "param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);" (assignment_expression "param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60)" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (call_expression "(uint)(PTR_LAB_000421fc + -0xa60)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(PTR_LAB_000421fc + -0xa60)" ( (binary_expression "PTR_LAB_000421fc + -0xa60" identifier + number_literal) )))) ;)) (expression_statement "puVar11 = (uint *)param_3[0xb5];" (assignment_expression "puVar11 = (uint *)param_3[0xb5]" identifier = (cast_expression "(uint *)param_3[0xb5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xb5]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00027350;" goto statement_identifier ;) })) }) (else_clause "else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" else (if_statement "if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" if (parenthesized_expression "(*(char *)(param_3 + 0xcc) != '\0')" ( (binary_expression "*(char *)(param_3 + 0xcc) != '\0'" (pointer_expression "*(char *)(param_3 + 0xcc)" * (cast_expression "(char *)(param_3 + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xcc)" ( (binary_expression "param_3 + 0xcc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00027344;" goto statement_identifier ;)))) })) (expression_statement "puVar11 = (uint *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != puVar11)" ( (binary_expression "puVar14 != puVar11" identifier != identifier) )) ;) (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;" if (parenthesized_expression "(*(char *)((int)param_3 + 0x331) == '\0')" ( (binary_expression "*(char *)((int)param_3 + 0x331) == '\0'" (pointer_expression "*(char *)((int)param_3 + 0x331)" * (cast_expression "(char *)((int)param_3 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x331)" ( (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (expression_statement "piVar9 = (int *)param_3[0xa6];" (assignment_expression "piVar9 = (int *)param_3[0xa6]" identifier = (cast_expression "(int *)param_3[0xa6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ]))) ;) (expression_statement "puVar11 = (uint *)0x0;" (assignment_expression "puVar11 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar16 = 0x113;" (assignment_expression "uVar16 = 0x113" identifier = number_literal) ;) (expression_statement "uVar12 = 0x10a;" (assignment_expression "uVar12 = 0x10a" identifier = number_literal) ;) (expression_statement "cVar8 = '\0';" (assignment_expression "cVar8 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);" do (compound_statement "{\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    }" { (expression_statement "iVar13 = *piVar9;" (assignment_expression "iVar13 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "cVar19 = *(char *)((int)param_3 + 0x331);" (assignment_expression "cVar19 = *(char *)((int)param_3 + 0x331)" identifier = (pointer_expression "*(char *)((int)param_3 + 0x331)" * (cast_expression "(char *)((int)param_3 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x331)" ( (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" if (parenthesized_expression "(iVar13 != 0x112)" ( (binary_expression "iVar13 != 0x112" identifier != number_literal) )) (compound_statement "{\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" { (if_statement "if (iVar13 == 0x113) goto LAB_00027418;" if (parenthesized_expression "(iVar13 == 0x113)" ( (binary_expression "iVar13 == 0x113" identifier == number_literal) )) (goto_statement "goto LAB_00027418;" goto statement_identifier ;)) (expression_statement "cVar19 = cVar8;" (assignment_expression "cVar19 = cVar8" identifier = identifier) ;) (if_statement "if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" if (parenthesized_expression "(iVar13 == 0x10a)" ( (binary_expression "iVar13 == 0x10a" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" { (expression_statement "(*(code *)PTR_abort_0004238c)();" (call_expression "(*(code *)PTR_abort_0004238c)()" (parenthesized_expression "(*(code *)PTR_abort_0004238c)" ( (pointer_expression "*(code *)PTR_abort_0004238c" * (cast_expression "(code *)PTR_abort_0004238c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) })) (expression_statement "puVar11 = (uint *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "cVar8 = cVar19;" (assignment_expression "cVar8 = cVar19" identifier = identifier) ;) }) while (parenthesized_expression "(puVar14 != puVar11)" ( (binary_expression "puVar14 != puVar11" identifier != identifier) )) ;) (if_statement "if (cVar19 == '\0') goto LAB_000274c4;" if (parenthesized_expression "(cVar19 == '\0')" ( (binary_expression "cVar19 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000274c4;" goto statement_identifier ;)) }))) (expression_statement "FUN_000207a4(param_3);" (call_expression "FUN_000207a4(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_3 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(param_3 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(param_3 + 0xcc)" * (cast_expression "(undefined1 *)(param_3 + 0xcc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xcc)" ( (binary_expression "param_3 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);" (assignment_expression "param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944)" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (call_expression "(uint)(PTR_LAB_000421fc + 0x2944)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(PTR_LAB_000421fc + 0x2944)" ( (binary_expression "PTR_LAB_000421fc + 0x2944" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(param_3 + 0xac) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xac) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xac)" * (cast_expression "(undefined1 *)(param_3 + 0xac)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xac)" ( (binary_expression "param_3 + 0xac" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00027418:\n  puVar14 = param_4;" statement_identifier : (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" identifier = identifier) ;)) (expression_statement "FUN_00022e74(param_3);" (call_expression "FUN_00022e74(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "puVar11 = (uint *)param_3[0xb5];" (assignment_expression "puVar11 = (uint *)param_3[0xb5]" identifier = (cast_expression "(uint *)param_3[0xb5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xb5]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" statement_identifier : (if_statement "if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" if (parenthesized_expression "(puVar11 != (uint *)0x0)" ( (binary_expression "puVar11 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" { (expression_statement "*(undefined1 *)(param_3 + 0xac) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xac) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xac)" * (cast_expression "(undefined1 *)(param_3 + 0xac)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xac)" ( (binary_expression "param_3 + 0xac" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00022e74();" (call_expression "FUN_00022e74()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" identifier = identifier) ;) }))) (if_statement "if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }" if (parenthesized_expression "(iVar1 != *(int *)PTR___stack_chk_guard_000424f0)" ( (binary_expression "iVar1 != *(int *)PTR___stack_chk_guard_000424f0" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }" { (expression_statement "puVar20 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000424d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" * (cast_expression "(code *)PTR___stack_chk_fail_000424d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af18))();" (call_expression "(**(code **)(puVar20 + 0x1af18))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1af18))" ( (pointer_expression "**(code **)(puVar20 + 0x1af18)" * (pointer_expression "*(code **)(puVar20 + 0x1af18)" * (cast_expression "(code **)(puVar20 + 0x1af18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af18)" ( (binary_expression "puVar20 + 0x1af18" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" if (parenthesized_expression "(*(char *)puVar14 == '\0')" ( (binary_expression "*(char *)puVar14 == '\0'" (pointer_expression "*(char *)puVar14" * (cast_expression "(char *)puVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }" { (expression_statement "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;" (assignment_expression "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944" identifier = (binary_expression "*(int *)(puVar20 + 0x1acf8) + 0x2944" (pointer_expression "*(int *)(puVar20 + 0x1acf8)" * (cast_expression "(int *)(puVar20 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1acf8)" ( (binary_expression "puVar20 + 0x1acf8" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" else (compound_statement "{\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" { (expression_statement "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;" (assignment_expression "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0" identifier = (binary_expression "*(int *)(puVar20 + 0x1acf8) + 0x21d0" (pointer_expression "*(int *)(puVar20 + 0x1acf8)" * (cast_expression "(int *)(puVar20 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1acf8)" ( (binary_expression "puVar20 + 0x1acf8" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "puVar11[0xca] = uVar2;" (assignment_expression "puVar11[0xca] = uVar2" (subscript_expression "puVar11[0xca]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (if_statement "if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)puVar14 == '\0')" ( (binary_expression "*(char *)puVar14 == '\0'" (pointer_expression "*(char *)puVar14" * (cast_expression "(char *)puVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }" { (expression_statement "iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);" (assignment_expression "iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aee4))(6,0)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aee4))" ( (pointer_expression "**(code **)(puVar20 + 0x1aee4)" * (pointer_expression "*(code **)(puVar20 + 0x1aee4)" * (cast_expression "(code **)(puVar20 + 0x1aee4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aee4)" ( (binary_expression "puVar20 + 0x1aee4" identifier + number_literal) ))))) )) (argument_list "(6,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar7 = true;\n      }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }) (else_clause "else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" else (compound_statement "{\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" { (expression_statement "iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);" (assignment_expression "iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" identifier = (call_expression "(**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" (parenthesized_expression "(**(code **)(puVar20 + 0x1b014))" ( (pointer_expression "**(code **)(puVar20 + 0x1b014)" * (pointer_expression "*(code **)(puVar20 + 0x1b014)" * (cast_expression "(code **)(puVar20 + 0x1b014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1b014)" ( (binary_expression "puVar20 + 0x1b014" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x1ac74) + -0x234" (pointer_expression "*(int *)(puVar20 + 0x1ac74)" * (cast_expression "(int *)(puVar20 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ac74)" ( (binary_expression "puVar20 + 0x1ac74" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          bVar7 = true;\n        }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }) (else_clause "else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" else (compound_statement "{\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" { (expression_statement "iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);" (assignment_expression "iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" identifier = (call_expression "(**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" (parenthesized_expression "(**(code **)(puVar20 + 0x1b014))" ( (pointer_expression "**(code **)(puVar20 + 0x1b014)" * (pointer_expression "*(code **)(puVar20 + 0x1b014)" * (cast_expression "(code **)(puVar20 + 0x1b014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1b014)" ( (binary_expression "puVar20 + 0x1b014" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x1ac74) + -0x230" (pointer_expression "*(int *)(puVar20 + 0x1ac74)" * (cast_expression "(int *)(puVar20 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ac74)" ( (binary_expression "puVar20 + 0x1ac74" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "bVar7 = iVar1 == 0;" (assignment_expression "bVar7 = iVar1 == 0" identifier = (binary_expression "iVar1 == 0" identifier == number_literal)) ;) }))) }))) })) (expression_statement "*(bool *)(puVar11 + 0xcb) = bVar7;" (assignment_expression "*(bool *)(puVar11 + 0xcb) = bVar7" (pointer_expression "*(bool *)(puVar11 + 0xcb)" * (cast_expression "(bool *)(puVar11 + 0xcb)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xcb)" ( (binary_expression "puVar11 + 0xcb" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar11 + 0xcc;" (assignment_expression "puVar3 = puVar11 + 0xcc" identifier = (binary_expression "puVar11 + 0xcc" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar14 + 0x140;" (assignment_expression "puVar17 = puVar14 + 0x140" identifier = (binary_expression "puVar14 + 0x140" identifier + number_literal)) ;) (do_statement "do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);" do (compound_statement "{\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    }" { (expression_statement "uVar5 = puVar14[1];" (assignment_expression "uVar5 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar14[2];" (assignment_expression "uVar15 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar14[3];" (assignment_expression "uVar2 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = *puVar14;" (assignment_expression "*puVar3 = *puVar14" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar3[1] = uVar5;" (assignment_expression "puVar3[1] = uVar5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = uVar15;" (assignment_expression "puVar3[2] = uVar15" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + 4;" (assignment_expression "puVar14 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != puVar17)" ( (binary_expression "puVar14 != puVar17" identifier != identifier) )) ;) (expression_statement "*puVar3 = *puVar14;" (assignment_expression "*puVar3 = *puVar14" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "*(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;" (assignment_expression "*(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1" (pointer_expression "*(byte *)(puVar11 + 0xac)" * (cast_expression "(byte *)(puVar11 + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xac)" ( (binary_expression "puVar11 + 0xac" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar11 + 0xcc) ^ 1" (pointer_expression "*(byte *)(puVar11 + 0xcc)" * (cast_expression "(byte *)(puVar11 + 0xcc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xcc)" ( (binary_expression "puVar11 + 0xcc" identifier + number_literal) )))) ^ number_literal)) ;) (expression_statement "puVar11[0x95] = 0xffffffff;" (assignment_expression "puVar11[0x95] = 0xffffffff" (subscript_expression "puVar11[0x95]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar11[0x9d] = 1;" (assignment_expression "puVar11[0x9d] = 1" (subscript_expression "puVar11[0x9d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar11 + 1) = 1;" (assignment_expression "*(undefined1 *)(puVar11 + 1) = 1" (pointer_expression "*(undefined1 *)(puVar11 + 1)" * (cast_expression "(undefined1 *)(puVar11 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 1)" ( (binary_expression "puVar11 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);" (assignment_expression "*(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f)" (pointer_expression "*(byte *)((int)puVar11 + 5)" * (cast_expression "(byte *)((int)puVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 5)" ( (binary_expression "(int)puVar11 + 5" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (call_expression "(byte)((uVar12 << 9) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar12 << 9) >> 0x1f)" ( (binary_expression "(uVar12 << 9) >> 0x1f" (parenthesized_expression "(uVar12 << 9)" ( (binary_expression "uVar12 << 9" identifier << number_literal) )) >> number_literal) )))) ;) (expression_statement "*(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;" (assignment_expression "*(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1" (pointer_expression "*(byte *)((int)puVar11 + 6)" * (cast_expression "(byte *)((int)puVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(byte)uVar16 & 1" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar10 = 10;" (assignment_expression "uVar10 = 10" identifier = number_literal) ;) (if_statement "if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }" if (parenthesized_expression "((uVar16 & 2) != 0)" ( (binary_expression "(uVar16 & 2) != 0" (parenthesized_expression "(uVar16 & 2)" ( (binary_expression "uVar16 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar10 = 0;\n    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "*(undefined1 *)((int)puVar11 + 7) = uVar10;" (assignment_expression "*(undefined1 *)((int)puVar11 + 7) = uVar10" (pointer_expression "*(undefined1 *)((int)puVar11 + 7)" * (cast_expression "(undefined1 *)((int)puVar11 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 7)" ( (binary_expression "(int)puVar11 + 7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*puVar11 = uVar12;" (assignment_expression "*puVar11 = uVar12" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "uVar2 = 0xffffff80;" (assignment_expression "uVar2 = 0xffffff80" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(puVar20 + 0x1acf8);" (assignment_expression "iVar1 = *(int *)(puVar20 + 0x1acf8)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1acf8)" * (cast_expression "(int *)(puVar20 + 0x1acf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1acf8)" ( (binary_expression "puVar20 + 0x1acf8" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar20 + 0x1ac74);" (assignment_expression "iVar13 = *(int *)(puVar20 + 0x1ac74)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1ac74)" * (cast_expression "(int *)(puVar20 + 0x1ac74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ac74)" ( (binary_expression "puVar20 + 0x1ac74" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);" do (compound_statement "{\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    }" { (if_statement "if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" if (parenthesized_expression "(((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0'))" ( (binary_expression "((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')" (parenthesized_expression "((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff))" ( (binary_expression "(uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)" (binary_expression "(uint)*(byte *)((int)puVar11 + 7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar11 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 7)" ( (binary_expression "(int)puVar11 + 7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) )) && (parenthesized_expression "(*(char *)((int)puVar11 + 6) == '\0')" ( (binary_expression "*(char *)((int)puVar11 + 6) == '\0'" (pointer_expression "*(char *)((int)puVar11 + 6)" * (cast_expression "(char *)((int)puVar11 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }" { (expression_statement "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;" (assignment_expression "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4" (pointer_expression "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8)" * (cast_expression "(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + (uVar2 & 0xff) + 8)" ( (binary_expression "(int)puVar11 + (uVar2 & 0xff) + 8" (binary_expression "(int)puVar11 + (uVar2 & 0xff)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);" (call_expression "(*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a)" (parenthesized_expression "(*(code *)(iVar1 + -0xc90))" ( (pointer_expression "*(code *)(iVar1 + -0xc90)" * (cast_expression "(code *)(iVar1 + -0xc90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0xc90)" ( (binary_expression "iVar1 + -0xc90" identifier + number_literal) )))) )) (argument_list "(uVar2 & 0xff,puVar11 + 0x8a)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) , (binary_expression "puVar11 + 0x8a" identifier + number_literal) ))) ;) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" identifier = (pointer_expression "*(char *)((int)puVar11 + 0x331)" * (cast_expression "(char *)((int)puVar11 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x331)" ( (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" else (compound_statement "{\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" { (expression_statement "uVar12 = uVar2 & 0xff;" (assignment_expression "uVar12 = uVar2 & 0xff" identifier = (binary_expression "uVar2 & 0xff" identifier & number_literal)) ;) (if_statement "if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" if (parenthesized_expression "((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f))))" ( (binary_expression "(puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))" (parenthesized_expression "(puVar11[uVar12 + 0x10d] == 0xffffffff)" ( (binary_expression "puVar11[uVar12 + 0x10d] == 0xffffffff" (subscript_expression "puVar11[uVar12 + 0x10d]" identifier [ (binary_expression "uVar12 + 0x10d" identifier + number_literal) ]) == number_literal) )) || (parenthesized_expression "((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))" ( (parenthesized_expression "(piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f))" ( (comma_expression "piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)" (assignment_expression "piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))()" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x1ae70))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x1ae70))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae70))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae70)" * (pointer_expression "*(code **)(puVar20 + 0x1ae70)" * (cast_expression "(code **)(puVar20 + 0x1ae70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae70)" ( (binary_expression "puVar20 + 0x1ae70" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)" (binary_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar9 + uVar12 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar9 + uVar12 * 2)" * (cast_expression "(ushort *)(*piVar9 + uVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + uVar12 * 2)" ( (binary_expression "*piVar9 + uVar12 * 2" (pointer_expression "*piVar9" * identifier) + (binary_expression "uVar12 * 2" identifier * number_literal)) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((uVar2 & 0xff) != 0x5f)" ( (binary_expression "(uVar2 & 0xff) != 0x5f" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" { (expression_statement "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;" (assignment_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 1" (pointer_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8)" * (cast_expression "(undefined1 *)((int)puVar11 + uVar12 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + uVar12 + 8)" ( (binary_expression "(int)puVar11 + uVar12 + 8" (binary_expression "(int)puVar11 + uVar12" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" identifier = (pointer_expression "*(char *)((int)puVar11 + 0x331)" * (cast_expression "(char *)((int)puVar11 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x331)" ( (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" else (compound_statement "{\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" { (expression_statement "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;" (assignment_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 2" (pointer_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8)" * (cast_expression "(undefined1 *)((int)puVar11 + uVar12 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + uVar12 + 8)" ( (binary_expression "(int)puVar11 + uVar12 + 8" (binary_expression "(int)puVar11 + uVar12" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);" (call_expression "(*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82)" (parenthesized_expression "(*(code *)(iVar1 + -0xc90))" ( (pointer_expression "*(code *)(iVar1 + -0xc90)" * (cast_expression "(code *)(iVar1 + -0xc90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + -0xc90)" ( (binary_expression "iVar1 + -0xc90" identifier + number_literal) )))) )) (argument_list "(uVar12,puVar11 + 0x82)" ( identifier , (binary_expression "puVar11 + 0x82" identifier + number_literal) ))) ;) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" identifier = (pointer_expression "*(char *)((int)puVar11 + 0x331)" * (cast_expression "(char *)((int)puVar11 + 0x331)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x331)" ( (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) }))) (if_statement "if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }" { (expression_statement "iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);" (assignment_expression "iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff)" identifier = (call_expression "(**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af4c))" ( (pointer_expression "**(code **)(puVar20 + 0x1af4c)" * (pointer_expression "*(code **)(puVar20 + 0x1af4c)" * (cast_expression "(code **)(puVar20 + 0x1af4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af4c)" ( (binary_expression "puVar20 + 0x1af4c" identifier + number_literal) ))))) )) (argument_list "(iVar13 + -0x228,uVar2 & 0xff)" ( (binary_expression "iVar13 + -0x228" identifier + number_literal) , (binary_expression "uVar2 & 0xff" identifier & number_literal) )))) ;) (expression_statement "bVar7 = iVar6 != 0;" (assignment_expression "bVar7 = iVar6 != 0" identifier = (binary_expression "iVar6 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" else (compound_statement "{\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" { (expression_statement "bVar7 = (uVar2 & 0xc0) != 0x80;" (assignment_expression "bVar7 = (uVar2 & 0xc0) != 0x80" identifier = (binary_expression "(uVar2 & 0xc0) != 0x80" (parenthesized_expression "(uVar2 & 0xc0)" ( (binary_expression "uVar2 & 0xc0" identifier & number_literal) )) != number_literal)) ;) }))) (expression_statement "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;" (assignment_expression "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7" (pointer_expression "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108)" * (cast_expression "(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + (uVar2 & 0xff) + 0x108)" ( (binary_expression "(int)puVar11 + (uVar2 & 0xff) + 0x108" (binary_expression "(int)puVar11 + (uVar2 & 0xff)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0x80)" ( (binary_expression "uVar2 != 0x80" identifier != number_literal) )) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (unary_expression ~ (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) || (binary_expression (binary_expression IDENT >> LIT) != LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT << LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) || (binary_expression (binary_expression IDENT >> LIT) != LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT << LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (return_statement return ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (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 (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 *)) ) IDENT)) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression 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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }))) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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) + LIT) )))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> 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) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_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) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (binary_expression IDENT & LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (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 (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) & LIT) )) == LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )))) )) ))) )) (compound_statement { (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) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (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) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != 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) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "dfacomp(uint param_1,uint param_2,uint *param_3,uint *param_4)" (identifier "dfacomp") (parameter_list "(uint param_1,uint param_2,uint *param_3,uint *param_4)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  bool bVar7;\n  int iVar6;\n  char cVar8;\n  int *piVar9;\n  undefined1 uVar10;\n  uint *puVar11;\n  uint uVar12;\n  int iVar13;\n  uint *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint *puVar17;\n  char cVar18;\n  char cVar19;\n  undefined *puVar20;\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;\n  param_3[0x96] = param_1;\n  param_3[0x97] = param_2;\n  param_3[0x98] = 0xffffffff;\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  cVar8 = *(char *)(param_3 + 1);\n  if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }\n  if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }\n  uVar2 = FUN_000249c0(param_3);\n  param_3[0xa4] = uVar2;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025d3c(param_3);\n  if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }\n  FUN_0002041c(param_3,~param_3[0xab]);\n  FUN_0002041c(param_3,0x105);\n  uVar2 = param_3[0xab];\n  if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }\n  param_3[0xab] = uVar2 + 1;\n  puVar3 = (uint *)dfaalloc();\n  puVar14 = param_3;\n  puVar11 = puVar3;\n  do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);\n  *puVar11 = *puVar14;\n  *(undefined1 *)(puVar3 + 0xcc) = 0;\n  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  puVar3[0xb4] = 0;\n  puVar3[0xb5] = 0;\n  puVar3[0xb6] = 0;\n  puVar3[0xb7] = 0;\n  puVar3[0xbb] = 0;\n  puVar3[0xbc] = 0;\n  puVar3[0xb9] = 0;\n  puVar3[0xbd] = 0;\n  puVar3[0xc0] = 0;\n  puVar3[0xc1] = 0;\n  puVar3[0xc2] = 0;\n  puVar3[0xc3] = 0;\n  uVar2 = puVar3[0x94];\n  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 5);\n  puVar3[0x92] = uVar2;\n  uVar12 = param_3[0x93] << 5;\n  if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }\n  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    \n    xalloc_die();\n  }\n  uVar2 = xmalloc(uVar2 << 3);\n  puVar3[0xa6] = uVar2;\n  uVar2 = param_3[0xa7];\n  puVar3[0xa8] = uVar2 << 1;\n  puVar20 = PTR_UINT_00042178;\n  if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  puVar11 = (uint *)0x0;\n  if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }\n  FUN_000207a4(param_3);\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);\n  *(undefined1 *)(param_3 + 0xac) = 1;\nLAB_00027418:\n  puVar14 = param_4;\n  FUN_00022e74(param_3);\n  puVar11 = (uint *)param_3[0xb5];\nLAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "undefined1 uVar10;" (type_identifier "undefined1") (identifier "uVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "char cVar18;" (primitive_type "char") (identifier "cVar18") (; ";")) (declaration "char cVar19;" (primitive_type "char") (identifier "cVar19") (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_000424f0;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_000424f0" (identifier "iVar1") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000424f0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000424f0")))) (; ";")) (expression_statement "param_3[0x96] = param_1;" (assignment_expression "param_3[0x96] = param_1" (subscript_expression "param_3[0x96]" (identifier "param_3") ([ "[") (number_literal "0x96") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "param_3[0x97] = param_2;" (assignment_expression "param_3[0x97] = param_2" (subscript_expression "param_3[0x97]" (identifier "param_3") ([ "[") (number_literal "0x97") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_3[0x98] = 0xffffffff;" (assignment_expression "param_3[0x98] = 0xffffffff" (subscript_expression "param_3[0x98]" (identifier "param_3") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined1 *)(param_3 + 0xa3) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xa3) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xa3)" (* "*") (cast_expression "(undefined1 *)(param_3 + 0xa3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xa3)" (( "(") (binary_expression "param_3 + 0xa3" (identifier "param_3") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "cVar8 = *(char *)(param_3 + 1);" (assignment_expression "cVar8 = *(char *)(param_3 + 1)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(param_3 + 1)" (* "*") (cast_expression "(char *)(param_3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (cVar8 == '\0') {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);\n                    \n    dfaerror(uVar4);\n  }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000424d8" (* "*") (cast_expression "(code *)PTR_dcgettext_000424d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000424d8"))) () ")")) (argument_list "(0,PTR_UINT_00042178 + -600,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_00042178 + -600" (identifier "PTR_UINT_00042178") (+ "+") (number_literal "-600")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "dfaerror(uVar4);" (call_expression "dfaerror(uVar4)" (identifier "dfaerror") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3[0xab] == 0) {\n    FUN_0002041c(param_3,0x10b);\n  }" (if "if") (parenthesized_expression "(param_3[0xab] == 0)" (( "(") (binary_expression "param_3[0xab] == 0" (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002041c(param_3,0x10b);\n  }" ({ "{") (expression_statement "FUN_0002041c(param_3,0x10b);" (call_expression "FUN_0002041c(param_3,0x10b)" (identifier "FUN_0002041c") (argument_list "(param_3,0x10b)" (( "(") (identifier "param_3") (, ",") (number_literal "0x10b") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_000249c0(param_3);" (assignment_expression "uVar2 = FUN_000249c0(param_3)" (identifier "uVar2") (= "=") (call_expression "FUN_000249c0(param_3)" (identifier "FUN_000249c0") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "param_3[0xa4] = uVar2;" (assignment_expression "param_3[0xa4] = uVar2" (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "param_3[0xa5] = param_3[0xa9];" (assignment_expression "param_3[0xa5] = param_3[0xa9]" (subscript_expression "param_3[0xa5]" (identifier "param_3") ([ "[") (number_literal "0xa5") (] "]")) (= "=") (subscript_expression "param_3[0xa9]" (identifier "param_3") ([ "[") (number_literal "0xa9") (] "]"))) (; ";")) (expression_statement "FUN_00025d3c(param_3);" (call_expression "FUN_00025d3c(param_3)" (identifier "FUN_00025d3c") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (if_statement "if (param_3[0xa4] != 0xffffffff) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }" (if "if") (parenthesized_expression "(param_3[0xa4] != 0xffffffff)" (( "(") (binary_expression "param_3[0xa4] != 0xffffffff" (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);\n                    \n    dfaerror(uVar4);\n  }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000424d8" (* "*") (cast_expression "(code *)PTR_dcgettext_000424d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000424d8"))) () ")")) (argument_list "(0,PTR_UINT_00042178 + -0x244,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_00042178 + -0x244" (identifier "PTR_UINT_00042178") (+ "+") (number_literal "-0x244")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "dfaerror(uVar4);" (call_expression "dfaerror(uVar4)" (identifier "dfaerror") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0002041c(param_3,~param_3[0xab]);" (call_expression "FUN_0002041c(param_3,~param_3[0xab])" (identifier "FUN_0002041c") (argument_list "(param_3,~param_3[0xab])" (( "(") (identifier "param_3") (, ",") (unary_expression "~param_3[0xab]" (~ "~") (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]"))) () ")"))) (; ";")) (expression_statement "FUN_0002041c(param_3,0x105);" (call_expression "FUN_0002041c(param_3,0x105)" (identifier "FUN_0002041c") (argument_list "(param_3,0x105)" (( "(") (identifier "param_3") (, ",") (number_literal "0x105") () ")"))) (; ";")) (expression_statement "uVar2 = param_3[0xab];" (assignment_expression "uVar2 = param_3[0xab]" (identifier "uVar2") (= "=") (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]"))) (; ";")) (if_statement "if (uVar2 != 0) {\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002041c(param_3,0x106);\n    uVar2 = param_3[0xab];\n  }" ({ "{") (expression_statement "FUN_0002041c(param_3,0x106);" (call_expression "FUN_0002041c(param_3,0x106)" (identifier "FUN_0002041c") (argument_list "(param_3,0x106)" (( "(") (identifier "param_3") (, ",") (number_literal "0x106") () ")"))) (; ";")) (expression_statement "uVar2 = param_3[0xab];" (assignment_expression "uVar2 = param_3[0xab]" (identifier "uVar2") (= "=") (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]"))) (; ";")) (} "}"))) (expression_statement "param_3[0xab] = uVar2 + 1;" (assignment_expression "param_3[0xab] = uVar2 + 1" (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar3 = (uint *)dfaalloc();" (assignment_expression "puVar3 = (uint *)dfaalloc()" (identifier "puVar3") (= "=") (cast_expression "(uint *)dfaalloc()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dfaalloc()" (identifier "dfaalloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar14 = param_3;" (assignment_expression "puVar14 = param_3" (identifier "puVar14") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar11 = puVar3;" (assignment_expression "puVar11 = puVar3" (identifier "puVar11") (= "=") (identifier "puVar3")) (; ";")) (do_statement "do {\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  } while (puVar14 != param_3 + 0x20c);" (do "do") (compound_statement "{\n    uVar16 = *puVar14;\n    uVar15 = puVar14[1];\n    uVar12 = puVar14[2];\n    uVar2 = puVar14[3];\n    *puVar11 = uVar16;\n    puVar11[1] = uVar15;\n    puVar11[2] = uVar12;\n    puVar11[3] = uVar2;\n    puVar14 = puVar14 + 4;\n    puVar11 = puVar11 + 4;\n  }" ({ "{") (expression_statement "uVar16 = *puVar14;" (assignment_expression "uVar16 = *puVar14" (identifier "uVar16") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "uVar15 = puVar14[1];" (assignment_expression "uVar15 = puVar14[1]" (identifier "uVar15") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = puVar14[2];" (assignment_expression "uVar12 = puVar14[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar14[3];" (assignment_expression "uVar2 = puVar14[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar11 = uVar16;" (assignment_expression "*puVar11 = uVar16" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar11[1] = uVar15;" (assignment_expression "puVar11[1] = uVar15" (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar11[2] = uVar12;" (assignment_expression "puVar11[2] = uVar12" (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar11[3] = uVar2;" (assignment_expression "puVar11[3] = uVar2" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar14 = puVar14 + 4;" (assignment_expression "puVar14 = puVar14 + 4" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar11 = puVar11 + 4;" (assignment_expression "puVar11 = puVar11 + 4" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != param_3 + 0x20c)" (( "(") (binary_expression "puVar14 != param_3 + 0x20c" (identifier "puVar14") (!= "!=") (binary_expression "param_3 + 0x20c" (identifier "param_3") (+ "+") (number_literal "0x20c"))) () ")")) (; ";")) (expression_statement "*puVar11 = *puVar14;" (assignment_expression "*puVar11 = *puVar14" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "*(undefined1 *)(puVar3 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0xcc)" (* "*") (cast_expression "(undefined1 *)(puVar3 + 0xcc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xcc)" (( "(") (binary_expression "puVar3 + 0xcc" (identifier "puVar3") (+ "+") (number_literal "0xcc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);" (assignment_expression "puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944)" (subscript_expression "puVar3[0xca]" (identifier "puVar3") ([ "[") (number_literal "0xca") (] "]")) (= "=") (call_expression "(uint)(PTR_LAB_000421fc + 0x2944)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(PTR_LAB_000421fc + 0x2944)" (( "(") (binary_expression "PTR_LAB_000421fc + 0x2944" (identifier "PTR_LAB_000421fc") (+ "+") (number_literal "0x2944")) () ")")))) (; ";")) (expression_statement "puVar3[0xb4] = 0;" (assignment_expression "puVar3[0xb4] = 0" (subscript_expression "puVar3[0xb4]" (identifier "puVar3") ([ "[") (number_literal "0xb4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb5] = 0;" (assignment_expression "puVar3[0xb5] = 0" (subscript_expression "puVar3[0xb5]" (identifier "puVar3") ([ "[") (number_literal "0xb5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb6] = 0;" (assignment_expression "puVar3[0xb6] = 0" (subscript_expression "puVar3[0xb6]" (identifier "puVar3") ([ "[") (number_literal "0xb6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb7] = 0;" (assignment_expression "puVar3[0xb7] = 0" (subscript_expression "puVar3[0xb7]" (identifier "puVar3") ([ "[") (number_literal "0xb7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xbb] = 0;" (assignment_expression "puVar3[0xbb] = 0" (subscript_expression "puVar3[0xbb]" (identifier "puVar3") ([ "[") (number_literal "0xbb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xbc] = 0;" (assignment_expression "puVar3[0xbc] = 0" (subscript_expression "puVar3[0xbc]" (identifier "puVar3") ([ "[") (number_literal "0xbc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb9] = 0;" (assignment_expression "puVar3[0xb9] = 0" (subscript_expression "puVar3[0xb9]" (identifier "puVar3") ([ "[") (number_literal "0xb9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xbd] = 0;" (assignment_expression "puVar3[0xbd] = 0" (subscript_expression "puVar3[0xbd]" (identifier "puVar3") ([ "[") (number_literal "0xbd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xc0] = 0;" (assignment_expression "puVar3[0xc0] = 0" (subscript_expression "puVar3[0xc0]" (identifier "puVar3") ([ "[") (number_literal "0xc0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xc1] = 0;" (assignment_expression "puVar3[0xc1] = 0" (subscript_expression "puVar3[0xc1]" (identifier "puVar3") ([ "[") (number_literal "0xc1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xc2] = 0;" (assignment_expression "puVar3[0xc2] = 0" (subscript_expression "puVar3[0xc2]" (identifier "puVar3") ([ "[") (number_literal "0xc2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xc3] = 0;" (assignment_expression "puVar3[0xc3] = 0" (subscript_expression "puVar3[0xc3]" (identifier "puVar3") ([ "[") (number_literal "0xc3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = puVar3[0x94];" (assignment_expression "uVar2 = puVar3[0x94]" (identifier "uVar2") (= "=") (subscript_expression "puVar3[0x94]" (identifier "puVar3") ([ "[") (number_literal "0x94") (] "]"))) (; ";")) (if_statement "if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {\n                    \n    xalloc_die();\n  }" (if "if") (parenthesized_expression "((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0)" (( "(") (binary_expression "(int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0" (binary_expression "(int)(uVar2 << 5) < 0" (cast_expression "(int)(uVar2 << 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 5)" (( "(") (binary_expression "uVar2 << 5" (identifier "uVar2") (<< "<<") (number_literal "5")) () ")"))) (< "<") (number_literal "0")) (|| "||") (binary_expression "uVar2 >> 0x1b != 0" (binary_expression "uVar2 >> 0x1b" (identifier "uVar2") (>> ">>") (number_literal "0x1b")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                    \n    xalloc_die();\n  }" ({ "{") (expression_statement "xalloc_die();" (call_expression "xalloc_die()" (identifier "xalloc_die") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = xmalloc(uVar2 << 5);" (assignment_expression "uVar2 = xmalloc(uVar2 << 5)" (identifier "uVar2") (= "=") (call_expression "xmalloc(uVar2 << 5)" (identifier "xmalloc") (argument_list "(uVar2 << 5)" (( "(") (binary_expression "uVar2 << 5" (identifier "uVar2") (<< "<<") (number_literal "5")) () ")")))) (; ";")) (expression_statement "puVar3[0x92] = uVar2;" (assignment_expression "puVar3[0x92] = uVar2" (subscript_expression "puVar3[0x92]" (identifier "puVar3") ([ "[") (number_literal "0x92") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar12 = param_3[0x93] << 5;" (assignment_expression "uVar12 = param_3[0x93] << 5" (identifier "uVar12") (= "=") (binary_expression "param_3[0x93] << 5" (subscript_expression "param_3[0x93]" (identifier "param_3") ([ "[") (number_literal "0x93") (] "]")) (<< "<<") (number_literal "5"))) (; ";")) (if_statement "if (param_3[0x93] == 0) {\n    uVar2 = param_3[0xa7];\n  }\n  else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" (if "if") (parenthesized_expression "(param_3[0x93] == 0)" (( "(") (binary_expression "param_3[0x93] == 0" (subscript_expression "param_3[0x93]" (identifier "param_3") ([ "[") (number_literal "0x93") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = param_3[0xa7];\n  }" ({ "{") (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" (identifier "uVar2") (= "=") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);\n    uVar2 = param_3[0xa7];\n  }" ({ "{") (expression_statement "(*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);" (call_expression "(*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92])" (parenthesized_expression "(*(code *)PTR_memcpy_000424f4)" (( "(") (pointer_expression "*(code *)PTR_memcpy_000424f4" (* "*") (cast_expression "(code *)PTR_memcpy_000424f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_000424f4"))) () ")")) (argument_list "(uVar2,param_3[0x92])" (( "(") (identifier "uVar2") (, ",") (subscript_expression "param_3[0x92]" (identifier "param_3") ([ "[") (number_literal "0x92") (] "]")) () ")"))) (; ";")) (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" (identifier "uVar2") (= "=") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]"))) (; ";")) (} "}")))) (if_statement "if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {\n                    \n    xalloc_die();\n  }" (if "if") (parenthesized_expression "((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0)" (( "(") (binary_expression "(int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0" (binary_expression "(int)(uVar2 << 3) < 0" (cast_expression "(int)(uVar2 << 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 3)" (( "(") (binary_expression "uVar2 << 3" (identifier "uVar2") (<< "<<") (number_literal "3")) () ")"))) (< "<") (number_literal "0")) (|| "||") (binary_expression "uVar2 >> 0x1d != 0" (binary_expression "uVar2 >> 0x1d" (identifier "uVar2") (>> ">>") (number_literal "0x1d")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                    \n    xalloc_die();\n  }" ({ "{") (expression_statement "xalloc_die();" (call_expression "xalloc_die()" (identifier "xalloc_die") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = xmalloc(uVar2 << 3);" (assignment_expression "uVar2 = xmalloc(uVar2 << 3)" (identifier "uVar2") (= "=") (call_expression "xmalloc(uVar2 << 3)" (identifier "xmalloc") (argument_list "(uVar2 << 3)" (( "(") (binary_expression "uVar2 << 3" (identifier "uVar2") (<< "<<") (number_literal "3")) () ")")))) (; ";")) (expression_statement "puVar3[0xa6] = uVar2;" (assignment_expression "puVar3[0xa6] = uVar2" (subscript_expression "puVar3[0xa6]" (identifier "puVar3") ([ "[") (number_literal "0xa6") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = param_3[0xa7];" (assignment_expression "uVar2 = param_3[0xa7]" (identifier "uVar2") (= "=") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]"))) (; ";")) (expression_statement "puVar3[0xa8] = uVar2 << 1;" (assignment_expression "puVar3[0xa8] = uVar2 << 1" (subscript_expression "puVar3[0xa8]" (identifier "puVar3") ([ "[") (number_literal "0xa8") (] "]")) (= "=") (binary_expression "uVar2 << 1" (identifier "uVar2") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "puVar20 = PTR_UINT_00042178;" (assignment_expression "puVar20 = PTR_UINT_00042178" (identifier "puVar20") (= "=") (identifier "PTR_UINT_00042178")) (; ";")) (if_statement "if (uVar2 == 0) {\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }\n  else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar3[0xa7] = 0;\nLAB_0002748c:\n    dfafree(puVar3);\n    (*(code *)PTR_free_000424fc)(puVar3);\n    puVar14 = (uint *)param_3[0xa7];\n  }" ({ "{") (expression_statement "puVar3[0xa7] = 0;" (assignment_expression "puVar3[0xa7] = 0" (subscript_expression "puVar3[0xa7]" (identifier "puVar3") ([ "[") (number_literal "0xa7") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002748c:\n    dfafree(puVar3);" (statement_identifier "LAB_0002748c") (: ":") (expression_statement "dfafree(puVar3);" (call_expression "dfafree(puVar3)" (identifier "dfafree") (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";"))) (expression_statement "(*(code *)PTR_free_000424fc)(puVar3);" (call_expression "(*(code *)PTR_free_000424fc)(puVar3)" (parenthesized_expression "(*(code *)PTR_free_000424fc)" (( "(") (pointer_expression "*(code *)PTR_free_000424fc" (* "*") (cast_expression "(code *)PTR_free_000424fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000424fc"))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (expression_statement "puVar14 = (uint *)param_3[0xa7];" (assignment_expression "puVar14 = (uint *)param_3[0xa7]" (identifier "puVar14") (= "=") (cast_expression "(uint *)param_3[0xa7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" (else "else") (compound_statement "{\n    uVar15 = 0;\n    uVar2 = 0;\n    cVar19 = '\0';\n    do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);\n    puVar3[0xa7] = uVar5;\n    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;\n    param_3[0xb5] = (uint)puVar3;\n    puVar14 = (uint *)param_3[0xa7];\n  }" ({ "{") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar19 = '\0';" (assignment_expression "cVar19 = '\0'" (identifier "cVar19") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (do_statement "do {\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    } while (uVar15 < param_3[0xa7]);" (do "do") (compound_statement "{\n      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);\n      uVar5 = iVar13 - 0x10a;\n      if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }\n      uVar5 = uVar2 + 1;\n      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;\n      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);\n      cVar18 = cVar8;\n      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }\n      uVar15 = uVar15 + 1;\n      uVar2 = uVar5;\n      cVar19 = cVar18;\n    }" ({ "{") (expression_statement "iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);" (assignment_expression "iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_3[0xa6] + uVar15 * 4)" (* "*") (cast_expression "(int *)(param_3[0xa6] + uVar15 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3[0xa6] + uVar15 * 4)" (( "(") (binary_expression "param_3[0xa6] + uVar15 * 4" (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")) (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar5 = iVar13 - 0x10a;" (assignment_expression "uVar5 = iVar13 - 0x10a" (identifier "uVar5") (= "=") (binary_expression "iVar13 - 0x10a" (identifier "iVar13") (- "-") (number_literal "0x10a"))) (; ";")) (if_statement "if (uVar5 < 10) {\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }" (if "if") (parenthesized_expression "(uVar5 < 10)" (( "(") (binary_expression "uVar5 < 10" (identifier "uVar5") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                    \n                    \n        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();\n        return;\n      }" ({ "{") (expression_statement "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar20 + uVar5 * 4 + 0x7c)" (* "*") (cast_expression "(int *)(puVar20 + uVar5 * 4 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + uVar5 * 4 + 0x7c)" (( "(") (binary_expression "puVar20 + uVar5 * 4 + 0x7c" (binary_expression "puVar20 + uVar5 * 4" (identifier "puVar20") (+ "+") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x7c")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar5 = uVar2 + 1;" (assignment_expression "uVar5 = uVar2 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;" (assignment_expression "*(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13" (pointer_expression "*(int *)(puVar3[0xa6] + uVar2 * 4)" (* "*") (cast_expression "(int *)(puVar3[0xa6] + uVar2 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3[0xa6] + uVar2 * 4)" (( "(") (binary_expression "puVar3[0xa6] + uVar2 * 4" (subscript_expression "puVar3[0xa6]" (identifier "puVar3") ([ "[") (number_literal "0xa6") (] "]")) (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);" (assignment_expression "uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_3[0xa6] + uVar15 * 4)" (* "*") (cast_expression "(uint *)(param_3[0xa6] + uVar15 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3[0xa6] + uVar15 * 4)" (( "(") (binary_expression "param_3[0xa6] + uVar15 * 4" (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")) (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "cVar18 = cVar8;" (assignment_expression "cVar18 = cVar8" (identifier "cVar18") (= "=") (identifier "cVar8")) (; ";")) (if_statement "if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {\n        cVar18 = cVar8;\n      }" (if "if") (parenthesized_expression "((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2))" (( "(") (binary_expression "(0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)" (parenthesized_expression "(0xff < uVar2)" (( "(") (binary_expression "0xff < uVar2" (number_literal "0xff") (< "<") (identifier "uVar2")) () ")")) (&& "&&") (parenthesized_expression "(cVar18 = cVar19, 0x113 < (int)uVar2)" (( "(") (comma_expression "cVar18 = cVar19, 0x113 < (int)uVar2" (assignment_expression "cVar18 = cVar19" (identifier "cVar18") (= "=") (identifier "cVar19")) (, ",") (binary_expression "0x113 < (int)uVar2" (number_literal "0x113") (< "<") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")))) () ")"))) () ")")) (compound_statement "{\n        cVar18 = cVar8;\n      }" ({ "{") (expression_statement "cVar18 = cVar8;" (assignment_expression "cVar18 = cVar8" (identifier "cVar18") (= "=") (identifier "cVar8")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" (identifier "uVar15") (= "=") (binary_expression "uVar15 + 1" (identifier "uVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = uVar5;" (assignment_expression "uVar2 = uVar5" (identifier "uVar2") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "cVar19 = cVar18;" (assignment_expression "cVar19 = cVar18" (identifier "cVar19") (= "=") (identifier "cVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 < param_3[0xa7])" (( "(") (binary_expression "uVar15 < param_3[0xa7]" (identifier "uVar15") (< "<") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]"))) () ")")) (; ";")) (expression_statement "puVar3[0xa7] = uVar5;" (assignment_expression "puVar3[0xa7] = uVar5" (subscript_expression "puVar3[0xa7]" (identifier "puVar3") ([ "[") (number_literal "0xa7") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;" (if "if") (parenthesized_expression "((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0'))" (( "(") (binary_expression "(cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')" (parenthesized_expression "(cVar18 == '\0')" (( "(") (binary_expression "cVar18 == '\0'" (identifier "cVar18") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_3 + 0xcc) == '\0')" (( "(") (binary_expression "*(char *)(param_3 + 0xcc) == '\0'" (pointer_expression "*(char *)(param_3 + 0xcc)" (* "*") (cast_expression "(char *)(param_3 + 0xcc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xcc)" (( "(") (binary_expression "param_3 + 0xcc" (identifier "param_3") (+ "+") (number_literal "0xcc")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0002748c;" (goto "goto") (statement_identifier "LAB_0002748c") (; ";"))) (expression_statement "param_3[0xb5] = (uint)puVar3;" (assignment_expression "param_3[0xb5] = (uint)puVar3" (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) (= "=") (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3"))) (; ";")) (expression_statement "puVar14 = (uint *)param_3[0xa7];" (assignment_expression "puVar14 = (uint *)param_3[0xa7]" (identifier "puVar14") (= "=") (cast_expression "(uint *)param_3[0xa7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]")))) (; ";")) (} "}")))) (expression_statement "puVar11 = (uint *)0x0;" (assignment_expression "puVar11 = (uint *)0x0" (identifier "puVar11") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (puVar14 == (uint *)0x0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }\n  else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" (if "if") (parenthesized_expression "(puVar14 == (uint *)0x0)" (( "(") (binary_expression "puVar14 == (uint *)0x0" (identifier "puVar14") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\nLAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }\n  }" ({ "{") (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;" (if "if") (parenthesized_expression "(*(char *)((int)param_3 + 0x331) == '\0')" (( "(") (binary_expression "*(char *)((int)param_3 + 0x331) == '\0'" (pointer_expression "*(char *)((int)param_3 + 0x331)" (* "*") (cast_expression "(char *)((int)param_3 + 0x331)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x331)" (( "(") (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x331")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00027418;" (goto "goto") (statement_identifier "LAB_00027418") (; ";"))) (labeled_statement "LAB_000274c4:\n    if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" (statement_identifier "LAB_000274c4") (: ":") (if_statement "if (param_3[0xb5] != 0) {\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" (if "if") (parenthesized_expression "(param_3[0xb5] != 0)" (( "(") (binary_expression "param_3[0xb5] != 0" (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      dfafree();\n      (*(code *)PTR_free_000424fc)(param_3[0xb5]);\n      param_3[0xb5] = 0;\n    }" ({ "{") (expression_statement "dfafree();" (call_expression "dfafree()" (identifier "dfafree") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000424fc)(param_3[0xb5]);" (call_expression "(*(code *)PTR_free_000424fc)(param_3[0xb5])" (parenthesized_expression "(*(code *)PTR_free_000424fc)" (( "(") (pointer_expression "*(code *)PTR_free_000424fc" (* "*") (cast_expression "(code *)PTR_free_000424fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000424fc"))) () ")")) (argument_list "(param_3[0xb5])" (( "(") (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) () ")"))) (; ";")) (expression_statement "param_3[0xb5] = 0;" (assignment_expression "param_3[0xb5] = 0" (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" (else "else") (compound_statement "{\n    piVar9 = (int *)param_3[0xa6];\n    do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;\n    piVar9 = (int *)param_3[0xa6];\n    puVar11 = (uint *)0x0;\n    uVar16 = 0x113;\n    uVar12 = 0x10a;\n    cVar8 = '\0';\n    do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);\n    if (cVar19 == '\0') goto LAB_000274c4;\n  }" ({ "{") (expression_statement "piVar9 = (int *)param_3[0xa6];" (assignment_expression "piVar9 = (int *)param_3[0xa6]" (identifier "piVar9") (= "=") (cast_expression "(int *)param_3[0xa6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")))) (; ";")) (do_statement "do {\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    } while (puVar14 != puVar11);" (do "do") (compound_statement "{\n      iVar13 = *piVar9;\n      uVar12 = (uint)(iVar13 < 0x112);\n      if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n    }" ({ "{") (expression_statement "iVar13 = *piVar9;" (assignment_expression "iVar13 = *piVar9" (identifier "iVar13") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "uVar12 = (uint)(iVar13 < 0x112);" (assignment_expression "uVar12 = (uint)(iVar13 < 0x112)" (identifier "uVar12") (= "=") (call_expression "(uint)(iVar13 < 0x112)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar13 < 0x112)" (( "(") (binary_expression "iVar13 < 0x112" (identifier "iVar13") (< "<") (number_literal "0x112")) () ")")))) (; ";")) (if_statement "if (0x10d < iVar13) {\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }" (if "if") (parenthesized_expression "(0x10d < iVar13)" (( "(") (binary_expression "0x10d < iVar13" (number_literal "0x10d") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n        if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;\n      }" ({ "{") (if_statement "if (uVar12 == 0) {\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }\n        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }\n        }" ({ "{") (if_statement "if (iVar13 < 0x114) {\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }" (if "if") (parenthesized_expression "(iVar13 < 0x114)" (( "(") (binary_expression "iVar13 < 0x114" (identifier "iVar13") (< "<") (number_literal "0x114")) () ")")) (compound_statement "{\nLAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);\n            puVar11 = (uint *)param_3[0xb5];\n            goto LAB_00027350;\n          }" ({ "{") (labeled_statement "LAB_00027344:\n            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);" (statement_identifier "LAB_00027344") (: ":") (expression_statement "param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);" (assignment_expression "param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60)" (subscript_expression "param_3[0xca]" (identifier "param_3") ([ "[") (number_literal "0xca") (] "]")) (= "=") (call_expression "(uint)(PTR_LAB_000421fc + -0xa60)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(PTR_LAB_000421fc + -0xa60)" (( "(") (binary_expression "PTR_LAB_000421fc + -0xa60" (identifier "PTR_LAB_000421fc") (+ "+") (number_literal "-0xa60")) () ")")))) (; ";"))) (expression_statement "puVar11 = (uint *)param_3[0xb5];" (assignment_expression "puVar11 = (uint *)param_3[0xb5]" (identifier "puVar11") (= "=") (cast_expression "(uint *)param_3[0xb5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")))) (; ";")) (goto_statement "goto LAB_00027350;" (goto "goto") (statement_identifier "LAB_00027350") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" (else "else") (if_statement "if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;" (if "if") (parenthesized_expression "(*(char *)(param_3 + 0xcc) != '\0')" (( "(") (binary_expression "*(char *)(param_3 + 0xcc) != '\0'" (pointer_expression "*(char *)(param_3 + 0xcc)" (* "*") (cast_expression "(char *)(param_3 + 0xcc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xcc)" (( "(") (binary_expression "param_3 + 0xcc" (identifier "param_3") (+ "+") (number_literal "0xcc")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00027344;" (goto "goto") (statement_identifier "LAB_00027344") (; ";"))))) (} "}"))) (expression_statement "puVar11 = (uint *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + 1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((int)puVar11 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 1)" (( "(") (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != puVar11)" (( "(") (binary_expression "puVar14 != puVar11" (identifier "puVar14") (!= "!=") (identifier "puVar11")) () ")")) (; ";")) (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;" (if "if") (parenthesized_expression "(*(char *)((int)param_3 + 0x331) == '\0')" (( "(") (binary_expression "*(char *)((int)param_3 + 0x331) == '\0'" (pointer_expression "*(char *)((int)param_3 + 0x331)" (* "*") (cast_expression "(char *)((int)param_3 + 0x331)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x331)" (( "(") (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x331")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00027418;" (goto "goto") (statement_identifier "LAB_00027418") (; ";"))) (expression_statement "piVar9 = (int *)param_3[0xa6];" (assignment_expression "piVar9 = (int *)param_3[0xa6]" (identifier "piVar9") (= "=") (cast_expression "(int *)param_3[0xa6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")))) (; ";")) (expression_statement "puVar11 = (uint *)0x0;" (assignment_expression "puVar11 = (uint *)0x0" (identifier "puVar11") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar16 = 0x113;" (assignment_expression "uVar16 = 0x113" (identifier "uVar16") (= "=") (number_literal "0x113")) (; ";")) (expression_statement "uVar12 = 0x10a;" (assignment_expression "uVar12 = 0x10a" (identifier "uVar12") (= "=") (number_literal "0x10a")) (; ";")) (expression_statement "cVar8 = '\0';" (assignment_expression "cVar8 = '\0'" (identifier "cVar8") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (do_statement "do {\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    } while (puVar14 != puVar11);" (do "do") (compound_statement "{\n      iVar13 = *piVar9;\n      cVar19 = *(char *)((int)param_3 + 0x331);\n      if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }\n      puVar11 = (uint *)((int)puVar11 + 1);\n      piVar9 = piVar9 + 1;\n      cVar8 = cVar19;\n    }" ({ "{") (expression_statement "iVar13 = *piVar9;" (assignment_expression "iVar13 = *piVar9" (identifier "iVar13") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "cVar19 = *(char *)((int)param_3 + 0x331);" (assignment_expression "cVar19 = *(char *)((int)param_3 + 0x331)" (identifier "cVar19") (= "=") (pointer_expression "*(char *)((int)param_3 + 0x331)" (* "*") (cast_expression "(char *)((int)param_3 + 0x331)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x331)" (( "(") (binary_expression "(int)param_3 + 0x331" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x331")) () ")"))))) (; ";")) (if_statement "if (iVar13 != 0x112) {\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" (if "if") (parenthesized_expression "(iVar13 != 0x112)" (( "(") (binary_expression "iVar13 != 0x112" (identifier "iVar13") (!= "!=") (number_literal "0x112")) () ")")) (compound_statement "{\n        if (iVar13 == 0x113) goto LAB_00027418;\n        cVar19 = cVar8;\n        if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }\n      }" ({ "{") (if_statement "if (iVar13 == 0x113) goto LAB_00027418;" (if "if") (parenthesized_expression "(iVar13 == 0x113)" (( "(") (binary_expression "iVar13 == 0x113" (identifier "iVar13") (== "==") (number_literal "0x113")) () ")")) (goto_statement "goto LAB_00027418;" (goto "goto") (statement_identifier "LAB_00027418") (; ";"))) (expression_statement "cVar19 = cVar8;" (assignment_expression "cVar19 = cVar8" (identifier "cVar19") (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (iVar13 == 0x10a) {\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" (if "if") (parenthesized_expression "(iVar13 == 0x10a)" (( "(") (binary_expression "iVar13 == 0x10a" (identifier "iVar13") (== "==") (number_literal "0x10a")) () ")")) (compound_statement "{\n          (*(code *)PTR_abort_0004238c)();\n          return;\n        }" ({ "{") (expression_statement "(*(code *)PTR_abort_0004238c)();" (call_expression "(*(code *)PTR_abort_0004238c)()" (parenthesized_expression "(*(code *)PTR_abort_0004238c)" (( "(") (pointer_expression "*(code *)PTR_abort_0004238c" (* "*") (cast_expression "(code *)PTR_abort_0004238c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_0004238c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar11 = (uint *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + 1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((int)puVar11 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 1)" (( "(") (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar8 = cVar19;" (assignment_expression "cVar8 = cVar19" (identifier "cVar8") (= "=") (identifier "cVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != puVar11)" (( "(") (binary_expression "puVar14 != puVar11" (identifier "puVar14") (!= "!=") (identifier "puVar11")) () ")")) (; ";")) (if_statement "if (cVar19 == '\0') goto LAB_000274c4;" (if "if") (parenthesized_expression "(cVar19 == '\0')" (( "(") (binary_expression "cVar19 == '\0'" (identifier "cVar19") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000274c4;" (goto "goto") (statement_identifier "LAB_000274c4") (; ";"))) (} "}")))) (expression_statement "FUN_000207a4(param_3);" (call_expression "FUN_000207a4(param_3)" (identifier "FUN_000207a4") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_3 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(param_3 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(param_3 + 0xcc)" (* "*") (cast_expression "(undefined1 *)(param_3 + 0xcc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xcc)" (( "(") (binary_expression "param_3 + 0xcc" (identifier "param_3") (+ "+") (number_literal "0xcc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);" (assignment_expression "param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944)" (subscript_expression "param_3[0xca]" (identifier "param_3") ([ "[") (number_literal "0xca") (] "]")) (= "=") (call_expression "(uint)(PTR_LAB_000421fc + 0x2944)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(PTR_LAB_000421fc + 0x2944)" (( "(") (binary_expression "PTR_LAB_000421fc + 0x2944" (identifier "PTR_LAB_000421fc") (+ "+") (number_literal "0x2944")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(param_3 + 0xac) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xac) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xac)" (* "*") (cast_expression "(undefined1 *)(param_3 + 0xac)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xac)" (( "(") (binary_expression "param_3 + 0xac" (identifier "param_3") (+ "+") (number_literal "0xac")) () ")")))) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00027418:\n  puVar14 = param_4;" (statement_identifier "LAB_00027418") (: ":") (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" (identifier "puVar14") (= "=") (identifier "param_4")) (; ";"))) (expression_statement "FUN_00022e74(param_3);" (call_expression "FUN_00022e74(param_3)" (identifier "FUN_00022e74") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "puVar11 = (uint *)param_3[0xb5];" (assignment_expression "puVar11 = (uint *)param_3[0xb5]" (identifier "puVar11") (= "=") (cast_expression "(uint *)param_3[0xb5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")))) (; ";")) (labeled_statement "LAB_00027350:\n  if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" (statement_identifier "LAB_00027350") (: ":") (if_statement "if (puVar11 != (uint *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" (if "if") (parenthesized_expression "(puVar11 != (uint *)0x0)" (( "(") (binary_expression "puVar11 != (uint *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022e74();\n    puVar14 = param_4;\n  }" ({ "{") (expression_statement "*(undefined1 *)(param_3 + 0xac) = 1;" (assignment_expression "*(undefined1 *)(param_3 + 0xac) = 1" (pointer_expression "*(undefined1 *)(param_3 + 0xac)" (* "*") (cast_expression "(undefined1 *)(param_3 + 0xac)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xac)" (( "(") (binary_expression "param_3 + 0xac" (identifier "param_3") (+ "+") (number_literal "0xac")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00022e74();" (call_expression "FUN_00022e74()" (identifier "FUN_00022e74") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" (identifier "puVar14") (= "=") (identifier "param_4")) (; ";")) (} "}")))) (if_statement "if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 != *(int *)PTR___stack_chk_guard_000424f0)" (( "(") (binary_expression "iVar1 != *(int *)PTR___stack_chk_guard_000424f0" (identifier "iVar1") (!= "!=") (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000424f0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000424f0")))) () ")")) (compound_statement "{\n    puVar20 = PTR___stack_chk_fail_000424d0;\n    (*(code *)PTR___stack_chk_fail_000424d0)();\n    (**(code **)(puVar20 + 0x1af18))();\n    if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }\n    puVar11[0xca] = uVar2;\n    bVar7 = false;\n    if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }\n    *(bool *)(puVar11 + 0xcb) = bVar7;\n    puVar3 = puVar11 + 0xcc;\n    puVar17 = puVar14 + 0x140;\n    do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);\n    *puVar3 = *puVar14;\n    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;\n    puVar11[0x95] = 0xffffffff;\n    puVar11[0x9d] = 1;\n    *(undefined1 *)(puVar11 + 1) = 1;\n    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);\n    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;\n    uVar10 = 10;\n    if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }\n    *(undefined1 *)((int)puVar11 + 7) = uVar10;\n    *puVar11 = uVar12;\n    uVar2 = 0xffffff80;\n    iVar1 = *(int *)(puVar20 + 0x1acf8);\n    iVar13 = *(int *)(puVar20 + 0x1ac74);\n    do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);\n    return;\n  }" ({ "{") (expression_statement "puVar20 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000424d0" (identifier "puVar20") (= "=") (identifier "PTR___stack_chk_fail_000424d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000424d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000424d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar20 + 0x1af18))();" (call_expression "(**(code **)(puVar20 + 0x1af18))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1af18))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x1af18)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x1af18)" (* "*") (cast_expression "(code **)(puVar20 + 0x1af18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x1af18)" (( "(") (binary_expression "puVar20 + 0x1af18" (identifier "puVar20") (+ "+") (number_literal "0x1af18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)puVar14 == '\0') {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }\n    else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" (if "if") (parenthesized_expression "(*(char *)puVar14 == '\0')" (( "(") (binary_expression "*(char *)puVar14 == '\0'" (pointer_expression "*(char *)puVar14" (* "*") (cast_expression "(char *)puVar14" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;\n    }" ({ "{") (expression_statement "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;" (assignment_expression "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944" (identifier "uVar2") (= "=") (binary_expression "*(int *)(puVar20 + 0x1acf8) + 0x2944" (pointer_expression "*(int *)(puVar20 + 0x1acf8)" (* "*") (cast_expression "(int *)(puVar20 + 0x1acf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x1acf8)" (( "(") (binary_expression "puVar20 + 0x1acf8" (identifier "puVar20") (+ "+") (number_literal "0x1acf8")) () ")")))) (+ "+") (number_literal "0x2944"))) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" (else "else") (compound_statement "{\n      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;\n    }" ({ "{") (expression_statement "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;" (assignment_expression "uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0" (identifier "uVar2") (= "=") (binary_expression "*(int *)(puVar20 + 0x1acf8) + 0x21d0" (pointer_expression "*(int *)(puVar20 + 0x1acf8)" (* "*") (cast_expression "(int *)(puVar20 + 0x1acf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x1acf8)" (( "(") (binary_expression "puVar20 + 0x1acf8" (identifier "puVar20") (+ "+") (number_literal "0x1acf8")) () ")")))) (+ "+") (number_literal "0x21d0"))) (; ";")) (} "}")))) (expression_statement "puVar11[0xca] = uVar2;" (assignment_expression "puVar11[0xca] = uVar2" (subscript_expression "puVar11[0xca]" (identifier "puVar11") ([ "[") (number_literal "0xca") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" (identifier "bVar7") (= "=") (false "false")) (; ";")) (if_statement "if (*(char *)puVar14 == '\0') {\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)puVar14 == '\0')" (( "(") (binary_expression "*(char *)puVar14 == '\0'" (pointer_expression "*(char *)puVar14" (* "*") (cast_expression "(char *)puVar14" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);\n      if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }\n    }" ({ "{") (expression_statement "iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);" (assignment_expression "iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar20 + 0x1aee4))(6,0)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aee4))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x1aee4)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x1aee4)" (* "*") (cast_expression "(code **)(puVar20 + 0x1aee4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x1aee4)" (( "(") (binary_expression "puVar20 + 0x1aee4" (identifier "puVar20") (+ "+") (number_literal "0x1aee4")) () ")"))))) () ")")) (argument_list "(6,0)" (( "(") (number_literal "6") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n        bVar7 = true;\n      }\n      else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar7 = true;\n      }" ({ "{") (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" (identifier "bVar7") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" (else "else") (compound_statement "{\n        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);\n        if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }\n      }" ({ "{") (expression_statement "iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);" (assignment_expression "iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" (parenthesized_expression "(**(code **)(puVar20 + 0x1b014))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x1b014)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x1b014)" (* "*") (cast_expression "(code **)(puVar20 + 0x1b014)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x1b014)" (( "(") (binary_expression "puVar20 + 0x1b014" (identifier "puVar20") (+ "+") (number_literal "0x1b014")) () ")"))))) () ")")) (argument_list "(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234)" (( "(") (identifier "iVar1") (, ",") (binary_expression "*(int *)(puVar20 + 0x1ac74) + -0x234" (pointer_expression "*(int *)(puVar20 + 0x1ac74)" (* "*") (cast_expression "(int *)(puVar20 + 0x1ac74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x1ac74)" (( "(") (binary_expression "puVar20 + 0x1ac74" (identifier "puVar20") (+ "+") (number_literal "0x1ac74")) () ")")))) (+ "+") (number_literal "-0x234")) () ")")))) (; ";")) (if_statement "if (iVar13 == 0) {\n          bVar7 = true;\n        }\n        else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          bVar7 = true;\n        }" ({ "{") (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" (identifier "bVar7") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" (else "else") (compound_statement "{\n          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);\n          bVar7 = iVar1 == 0;\n        }" ({ "{") (expression_statement "iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);" (assignment_expression "iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" (parenthesized_expression "(**(code **)(puVar20 + 0x1b014))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x1b014)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x1b014)" (* "*") (cast_expression "(code **)(puVar20 + 0x1b014)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x1b014)" (( "(") (binary_expression "puVar20 + 0x1b014" (identifier "puVar20") (+ "+") (number_literal "0x1b014")) () ")"))))) () ")")) (argument_list "(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230)" (( "(") (identifier "iVar1") (, ",") (binary_expression "*(int *)(puVar20 + 0x1ac74) + -0x230" (pointer_expression "*(int *)(puVar20 + 0x1ac74)" (* "*") (cast_expression "(int *)(puVar20 + 0x1ac74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x1ac74)" (( "(") (binary_expression "puVar20 + 0x1ac74" (identifier "puVar20") (+ "+") (number_literal "0x1ac74")) () ")")))) (+ "+") (number_literal "-0x230")) () ")")))) (; ";")) (expression_statement "bVar7 = iVar1 == 0;" (assignment_expression "bVar7 = iVar1 == 0" (identifier "bVar7") (= "=") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) (; ";")) (} "}")))) (} "}")))) (} "}"))) (expression_statement "*(bool *)(puVar11 + 0xcb) = bVar7;" (assignment_expression "*(bool *)(puVar11 + 0xcb) = bVar7" (pointer_expression "*(bool *)(puVar11 + 0xcb)" (* "*") (cast_expression "(bool *)(puVar11 + 0xcb)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xcb)" (( "(") (binary_expression "puVar11 + 0xcb" (identifier "puVar11") (+ "+") (number_literal "0xcb")) () ")")))) (= "=") (identifier "bVar7")) (; ";")) (expression_statement "puVar3 = puVar11 + 0xcc;" (assignment_expression "puVar3 = puVar11 + 0xcc" (identifier "puVar3") (= "=") (binary_expression "puVar11 + 0xcc" (identifier "puVar11") (+ "+") (number_literal "0xcc"))) (; ";")) (expression_statement "puVar17 = puVar14 + 0x140;" (assignment_expression "puVar17 = puVar14 + 0x140" (identifier "puVar17") (= "=") (binary_expression "puVar14 + 0x140" (identifier "puVar14") (+ "+") (number_literal "0x140"))) (; ";")) (do_statement "do {\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    } while (puVar14 != puVar17);" (do "do") (compound_statement "{\n      uVar5 = puVar14[1];\n      uVar15 = puVar14[2];\n      uVar2 = puVar14[3];\n      *puVar3 = *puVar14;\n      puVar3[1] = uVar5;\n      puVar3[2] = uVar15;\n      puVar3[3] = uVar2;\n      puVar14 = puVar14 + 4;\n      puVar3 = puVar3 + 4;\n    }" ({ "{") (expression_statement "uVar5 = puVar14[1];" (assignment_expression "uVar5 = puVar14[1]" (identifier "uVar5") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = puVar14[2];" (assignment_expression "uVar15 = puVar14[2]" (identifier "uVar15") (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar14[3];" (assignment_expression "uVar2 = puVar14[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar3 = *puVar14;" (assignment_expression "*puVar3 = *puVar14" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar3[1] = uVar5;" (assignment_expression "puVar3[1] = uVar5" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar3[2] = uVar15;" (assignment_expression "puVar3[2] = uVar15" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar14 = puVar14 + 4;" (assignment_expression "puVar14 = puVar14 + 4" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != puVar17)" (( "(") (binary_expression "puVar14 != puVar17" (identifier "puVar14") (!= "!=") (identifier "puVar17")) () ")")) (; ";")) (expression_statement "*puVar3 = *puVar14;" (assignment_expression "*puVar3 = *puVar14" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "*(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;" (assignment_expression "*(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1" (pointer_expression "*(byte *)(puVar11 + 0xac)" (* "*") (cast_expression "(byte *)(puVar11 + 0xac)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xac)" (( "(") (binary_expression "puVar11 + 0xac" (identifier "puVar11") (+ "+") (number_literal "0xac")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar11 + 0xcc) ^ 1" (pointer_expression "*(byte *)(puVar11 + 0xcc)" (* "*") (cast_expression "(byte *)(puVar11 + 0xcc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xcc)" (( "(") (binary_expression "puVar11 + 0xcc" (identifier "puVar11") (+ "+") (number_literal "0xcc")) () ")")))) (^ "^") (number_literal "1"))) (; ";")) (expression_statement "puVar11[0x95] = 0xffffffff;" (assignment_expression "puVar11[0x95] = 0xffffffff" (subscript_expression "puVar11[0x95]" (identifier "puVar11") ([ "[") (number_literal "0x95") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar11[0x9d] = 1;" (assignment_expression "puVar11[0x9d] = 1" (subscript_expression "puVar11[0x9d]" (identifier "puVar11") ([ "[") (number_literal "0x9d") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(puVar11 + 1) = 1;" (assignment_expression "*(undefined1 *)(puVar11 + 1) = 1" (pointer_expression "*(undefined1 *)(puVar11 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar11 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 1)" (( "(") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);" (assignment_expression "*(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f)" (pointer_expression "*(byte *)((int)puVar11 + 5)" (* "*") (cast_expression "(byte *)((int)puVar11 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 5)" (( "(") (binary_expression "(int)puVar11 + 5" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "5")) () ")")))) (= "=") (call_expression "(byte)((uVar12 << 9) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uVar12 << 9) >> 0x1f)" (( "(") (binary_expression "(uVar12 << 9) >> 0x1f" (parenthesized_expression "(uVar12 << 9)" (( "(") (binary_expression "uVar12 << 9" (identifier "uVar12") (<< "<<") (number_literal "9")) () ")")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "*(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;" (assignment_expression "*(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1" (pointer_expression "*(byte *)((int)puVar11 + 6)" (* "*") (cast_expression "(byte *)((int)puVar11 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 6)" (( "(") (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "(byte)uVar16 & 1" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar10 = 10;" (assignment_expression "uVar10 = 10" (identifier "uVar10") (= "=") (number_literal "10")) (; ";")) (if_statement "if ((uVar16 & 2) != 0) {\n      uVar10 = 0;\n    }" (if "if") (parenthesized_expression "((uVar16 & 2) != 0)" (( "(") (binary_expression "(uVar16 & 2) != 0" (parenthesized_expression "(uVar16 & 2)" (( "(") (binary_expression "uVar16 & 2" (identifier "uVar16") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar10 = 0;\n    }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)puVar11 + 7) = uVar10;" (assignment_expression "*(undefined1 *)((int)puVar11 + 7) = uVar10" (pointer_expression "*(undefined1 *)((int)puVar11 + 7)" (* "*") (cast_expression "(undefined1 *)((int)puVar11 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 7)" (( "(") (binary_expression "(int)puVar11 + 7" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*puVar11 = uVar12;" (assignment_expression "*puVar11 = uVar12" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar2 = 0xffffff80;" (assignment_expression "uVar2 = 0xffffff80" (identifier "uVar2") (= "=") (number_literal "0xffffff80")) (; ";")) (expression_statement "iVar1 = *(int *)(puVar20 + 0x1acf8);" (assignment_expression "iVar1 = *(int *)(puVar20 + 0x1acf8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar20 + 0x1acf8)" (* "*") (cast_expression "(int *)(puVar20 + 0x1acf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x1acf8)" (( "(") (binary_expression "puVar20 + 0x1acf8" (identifier "puVar20") (+ "+") (number_literal "0x1acf8")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar20 + 0x1ac74);" (assignment_expression "iVar13 = *(int *)(puVar20 + 0x1ac74)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar20 + 0x1ac74)" (* "*") (cast_expression "(int *)(puVar20 + 0x1ac74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x1ac74)" (( "(") (binary_expression "puVar20 + 0x1ac74" (identifier "puVar20") (+ "+") (number_literal "0x1ac74")) () ")"))))) (; ";")) (do_statement "do {\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    } while (uVar2 != 0x80);" (do "do") (compound_statement "{\n      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }\n      if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }\n      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;\n      uVar2 = uVar2 + 1;\n    }" ({ "{") (if_statement "if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')) {\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }\n      else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" (if "if") (parenthesized_expression "(((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0'))" (( "(") (binary_expression "((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&\n         (*(char *)((int)puVar11 + 6) == '\0')" (parenthesized_expression "((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff))" (( "(") (binary_expression "(uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)" (binary_expression "(uint)*(byte *)((int)puVar11 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)puVar11 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 7)" (( "(") (binary_expression "(int)puVar11 + 7" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "7")) () ")")))) (== "==") (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)puVar11 + 6) == '\0')" (( "(") (binary_expression "*(char *)((int)puVar11 + 6) == '\0'" (pointer_expression "*(char *)((int)puVar11 + 6)" (* "*") (cast_expression "(char *)((int)puVar11 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 6)" (( "(") (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "6")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;\n        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);\n        cVar8 = *(char *)((int)puVar11 + 0x331);\n      }" ({ "{") (expression_statement "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;" (assignment_expression "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4" (pointer_expression "*(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8)" (* "*") (cast_expression "(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + (uVar2 & 0xff) + 8)" (( "(") (binary_expression "(int)puVar11 + (uVar2 & 0xff) + 8" (binary_expression "(int)puVar11 + (uVar2 & 0xff)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "(*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);" (call_expression "(*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a)" (parenthesized_expression "(*(code *)(iVar1 + -0xc90))" (( "(") (pointer_expression "*(code *)(iVar1 + -0xc90)" (* "*") (cast_expression "(code *)(iVar1 + -0xc90)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + -0xc90)" (( "(") (binary_expression "iVar1 + -0xc90" (identifier "iVar1") (+ "+") (number_literal "-0xc90")) () ")")))) () ")")) (argument_list "(uVar2 & 0xff,puVar11 + 0x8a)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) (, ",") (binary_expression "puVar11 + 0x8a" (identifier "puVar11") (+ "+") (number_literal "0x8a")) () ")"))) (; ";")) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)((int)puVar11 + 0x331)" (* "*") (cast_expression "(char *)((int)puVar11 + 0x331)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x331)" (( "(") (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x331")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" (else "else") (compound_statement "{\n        uVar12 = uVar2 & 0xff;\n        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n      }" ({ "{") (expression_statement "uVar12 = uVar2 & 0xff;" (assignment_expression "uVar12 = uVar2 & 0xff" (identifier "uVar12") (= "=") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }\n        else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" (if "if") (parenthesized_expression "((puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f))))" (( "(") (binary_expression "(puVar11[uVar12 + 0x10d] == 0xffffffff) ||\n           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))" (parenthesized_expression "(puVar11[uVar12 + 0x10d] == 0xffffffff)" (( "(") (binary_expression "puVar11[uVar12 + 0x10d] == 0xffffffff" (subscript_expression "puVar11[uVar12 + 0x10d]" (identifier "puVar11") ([ "[") (binary_expression "uVar12 + 0x10d" (identifier "uVar12") (+ "+") (number_literal "0x10d")) (] "]")) (== "==") (number_literal "0xffffffff")) () ")")) (|| "||") (parenthesized_expression "((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))" (( "(") (parenthesized_expression "(piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f))" (( "(") (comma_expression "piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),\n            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)" (assignment_expression "piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))()" (identifier "piVar9") (= "=") (cast_expression "(int *)(**(code **)(puVar20 + 0x1ae70))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + 0x1ae70))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae70))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x1ae70)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x1ae70)" (* "*") (cast_expression "(code **)(puVar20 + 0x1ae70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x1ae70)" (( "(") (binary_expression "puVar20 + 0x1ae70" (identifier "puVar20") (+ "+") (number_literal "0x1ae70")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)" (binary_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar9 + uVar12 * 2) & 0x800)" (( "(") (binary_expression "*(ushort *)(*piVar9 + uVar12 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar9 + uVar12 * 2)" (* "*") (cast_expression "(ushort *)(*piVar9 + uVar12 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + uVar12 * 2)" (( "(") (binary_expression "*piVar9 + uVar12 * 2" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (binary_expression "uVar12 * 2" (identifier "uVar12") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((uVar2 & 0xff) != 0x5f)" (( "(") (binary_expression "(uVar2 & 0xff) != 0x5f" (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")")) (!= "!=") (number_literal "0x5f")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" ({ "{") (expression_statement "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;" (assignment_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 1" (pointer_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8)" (* "*") (cast_expression "(undefined1 *)((int)puVar11 + uVar12 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + uVar12 + 8)" (( "(") (binary_expression "(int)puVar11 + uVar12 + 8" (binary_expression "(int)puVar11 + uVar12" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (identifier "uVar12")) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)((int)puVar11 + 0x331)" (* "*") (cast_expression "(char *)((int)puVar11 + 0x331)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x331)" (( "(") (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x331")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" (else "else") (compound_statement "{\n          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;\n          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);\n          cVar8 = *(char *)((int)puVar11 + 0x331);\n        }" ({ "{") (expression_statement "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;" (assignment_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8) = 2" (pointer_expression "*(undefined1 *)((int)puVar11 + uVar12 + 8)" (* "*") (cast_expression "(undefined1 *)((int)puVar11 + uVar12 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + uVar12 + 8)" (( "(") (binary_expression "(int)puVar11 + uVar12 + 8" (binary_expression "(int)puVar11 + uVar12" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (identifier "uVar12")) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "(*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);" (call_expression "(*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82)" (parenthesized_expression "(*(code *)(iVar1 + -0xc90))" (( "(") (pointer_expression "*(code *)(iVar1 + -0xc90)" (* "*") (cast_expression "(code *)(iVar1 + -0xc90)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + -0xc90)" (( "(") (binary_expression "iVar1 + -0xc90" (identifier "iVar1") (+ "+") (number_literal "-0xc90")) () ")")))) () ")")) (argument_list "(uVar12,puVar11 + 0x82)" (( "(") (identifier "uVar12") (, ",") (binary_expression "puVar11 + 0x82" (identifier "puVar11") (+ "+") (number_literal "0x82")) () ")"))) (; ";")) (expression_statement "cVar8 = *(char *)((int)puVar11 + 0x331);" (assignment_expression "cVar8 = *(char *)((int)puVar11 + 0x331)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)((int)puVar11 + 0x331)" (* "*") (cast_expression "(char *)((int)puVar11 + 0x331)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x331)" (( "(") (binary_expression "(int)puVar11 + 0x331" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x331")) () ")"))))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (cVar8 == '\0') {\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }\n      else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);\n        bVar7 = iVar6 != 0;\n      }" ({ "{") (expression_statement "iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);" (assignment_expression "iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af4c))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x1af4c)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x1af4c)" (* "*") (cast_expression "(code **)(puVar20 + 0x1af4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x1af4c)" (( "(") (binary_expression "puVar20 + 0x1af4c" (identifier "puVar20") (+ "+") (number_literal "0x1af4c")) () ")"))))) () ")")) (argument_list "(iVar13 + -0x228,uVar2 & 0xff)" (( "(") (binary_expression "iVar13 + -0x228" (identifier "iVar13") (+ "+") (number_literal "-0x228")) (, ",") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")")))) (; ";")) (expression_statement "bVar7 = iVar6 != 0;" (assignment_expression "bVar7 = iVar6 != 0" (identifier "bVar7") (= "=") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" (else "else") (compound_statement "{\n        bVar7 = (uVar2 & 0xc0) != 0x80;\n      }" ({ "{") (expression_statement "bVar7 = (uVar2 & 0xc0) != 0x80;" (assignment_expression "bVar7 = (uVar2 & 0xc0) != 0x80" (identifier "bVar7") (= "=") (binary_expression "(uVar2 & 0xc0) != 0x80" (parenthesized_expression "(uVar2 & 0xc0)" (( "(") (binary_expression "uVar2 & 0xc0" (identifier "uVar2") (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0x80"))) (; ";")) (} "}")))) (expression_statement "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;" (assignment_expression "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7" (pointer_expression "*(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108)" (* "*") (cast_expression "(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + (uVar2 & 0xff) + 0x108)" (( "(") (binary_expression "(int)puVar11 + (uVar2 & 0xff) + 0x108" (binary_expression "(int)puVar11 + (uVar2 & 0xff)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")"))) (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "bVar7")) (; ";")) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 != 0x80)" (( "(") (binary_expression "uVar2 != 0x80" (identifier "uVar2") (!= "!=") (number_literal "0x80")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (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: (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: (call_expression function: (identifier) arguments: (argument_list))))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (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) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (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: (char_literal (escape_sequence)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))) arguments: (argument_list))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (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)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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 (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (char_literal (escape_sequence)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_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: (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))) (return_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (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 (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: (identifier))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (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: (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)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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)))) right: (binary_expression left: (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: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (return_statement))) (return_statement))))

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

{
  int iVar1;
  uint uVar2;
  uint *puVar3;
  undefined4 uVar4;
  uint uVar5;
  bool bVar7;
  int iVar6;
  char cVar8;
  int *piVar9;
  undefined1 uVar10;
  uint *puVar11;
  uint uVar12;
  int iVar13;
  uint *puVar14;
  uint uVar15;
  uint uVar16;
  uint *puVar17;
  char cVar18;
  char cVar19;
  undefined *puVar20;
  
  iVar1 = *(int *)PTR___stack_chk_guard_000424f0;
  param_3[0x96] = param_1;
  param_3[0x97] = param_2;
  param_3[0x98] = 0xffffffff;
  *(undefined1 *)(param_3 + 0xa3) = 1;
  cVar8 = *(char *)(param_3 + 1);
  if (cVar8 == '\0') {
    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -600,5);
                    /* WARNING: Subroutine does not return */
    dfaerror(uVar4);
  }
  if (param_3[0xab] == 0) {
    FUN_0002041c(param_3,0x10b);
  }
  uVar2 = FUN_000249c0(param_3);
  param_3[0xa4] = uVar2;
  param_3[0xa5] = param_3[0xa9];
  FUN_00025d3c(param_3);
  if (param_3[0xa4] != 0xffffffff) {
    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x244,5);
                    /* WARNING: Subroutine does not return */
    dfaerror(uVar4);
  }
  FUN_0002041c(param_3,~param_3[0xab]);
  FUN_0002041c(param_3,0x105);
  uVar2 = param_3[0xab];
  if (uVar2 != 0) {
    FUN_0002041c(param_3,0x106);
    uVar2 = param_3[0xab];
  }
  param_3[0xab] = uVar2 + 1;
  puVar3 = (uint *)dfaalloc();
  puVar14 = param_3;
  puVar11 = puVar3;
  do {
    uVar16 = *puVar14;
    uVar15 = puVar14[1];
    uVar12 = puVar14[2];
    uVar2 = puVar14[3];
    *puVar11 = uVar16;
    puVar11[1] = uVar15;
    puVar11[2] = uVar12;
    puVar11[3] = uVar2;
    puVar14 = puVar14 + 4;
    puVar11 = puVar11 + 4;
  } while (puVar14 != param_3 + 0x20c);
  *puVar11 = *puVar14;
  *(undefined1 *)(puVar3 + 0xcc) = 0;
  puVar3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);
  puVar3[0xb4] = 0;
  puVar3[0xb5] = 0;
  puVar3[0xb6] = 0;
  puVar3[0xb7] = 0;
  puVar3[0xbb] = 0;
  puVar3[0xbc] = 0;
  puVar3[0xb9] = 0;
  puVar3[0xbd] = 0;
  puVar3[0xc0] = 0;
  puVar3[0xc1] = 0;
  puVar3[0xc2] = 0;
  puVar3[0xc3] = 0;
  uVar2 = puVar3[0x94];
  if ((int)(uVar2 << 5) < 0 || uVar2 >> 0x1b != 0) {
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  uVar2 = xmalloc(uVar2 << 5);
  puVar3[0x92] = uVar2;
  uVar12 = param_3[0x93] << 5;
  if (param_3[0x93] == 0) {
    uVar2 = param_3[0xa7];
  }
  else {
    (*(code *)PTR_memcpy_000424f4)(uVar2,param_3[0x92]);
    uVar2 = param_3[0xa7];
  }
  if ((int)(uVar2 << 3) < 0 || uVar2 >> 0x1d != 0) {
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  uVar2 = xmalloc(uVar2 << 3);
  puVar3[0xa6] = uVar2;
  uVar2 = param_3[0xa7];
  puVar3[0xa8] = uVar2 << 1;
  puVar20 = PTR_UINT_00042178;
  if (uVar2 == 0) {
    puVar3[0xa7] = 0;
LAB_0002748c:
    dfafree(puVar3);
    (*(code *)PTR_free_000424fc)(puVar3);
    puVar14 = (uint *)param_3[0xa7];
  }
  else {
    uVar15 = 0;
    uVar2 = 0;
    cVar19 = '\0';
    do {
      iVar13 = *(int *)(param_3[0xa6] + uVar15 * 4);
      uVar5 = iVar13 - 0x10a;
      if (uVar5 < 10) {
                    /* WARNING: Could not emulate address calculation at 0x0002727c */
                    /* WARNING: Treating indirect jump as call */
        (*(code *)(&_gp_1 + *(int *)(puVar20 + uVar5 * 4 + 0x7c)))();
        return;
      }
      uVar5 = uVar2 + 1;
      *(int *)(puVar3[0xa6] + uVar2 * 4) = iVar13;
      uVar2 = *(uint *)(param_3[0xa6] + uVar15 * 4);
      cVar18 = cVar8;
      if ((0xff < uVar2) && (cVar18 = cVar19, 0x113 < (int)uVar2)) {
        cVar18 = cVar8;
      }
      uVar15 = uVar15 + 1;
      uVar2 = uVar5;
      cVar19 = cVar18;
    } while (uVar15 < param_3[0xa7]);
    puVar3[0xa7] = uVar5;
    if ((cVar18 == '\0') || (*(char *)(param_3 + 0xcc) == '\0')) goto LAB_0002748c;
    param_3[0xb5] = (uint)puVar3;
    puVar14 = (uint *)param_3[0xa7];
  }
  puVar11 = (uint *)0x0;
  if (puVar14 == (uint *)0x0) {
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;
LAB_000274c4:
    if (param_3[0xb5] != 0) {
      dfafree();
      (*(code *)PTR_free_000424fc)(param_3[0xb5]);
      param_3[0xb5] = 0;
    }
  }
  else {
    piVar9 = (int *)param_3[0xa6];
    do {
      iVar13 = *piVar9;
      uVar12 = (uint)(iVar13 < 0x112);
      if (0x10d < iVar13) {
        if (uVar12 == 0) {
          if (iVar13 < 0x114) {
LAB_00027344:
            param_3[0xca] = (uint)(PTR_LAB_000421fc + -0xa60);
            puVar11 = (uint *)param_3[0xb5];
            goto LAB_00027350;
          }
        }
        else if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_00027344;
      }
      puVar11 = (uint *)((int)puVar11 + 1);
      piVar9 = piVar9 + 1;
    } while (puVar14 != puVar11);
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00027418;
    piVar9 = (int *)param_3[0xa6];
    puVar11 = (uint *)0x0;
    uVar16 = 0x113;
    uVar12 = 0x10a;
    cVar8 = '\0';
    do {
      iVar13 = *piVar9;
      cVar19 = *(char *)((int)param_3 + 0x331);
      if (iVar13 != 0x112) {
        if (iVar13 == 0x113) goto LAB_00027418;
        cVar19 = cVar8;
        if (iVar13 == 0x10a) {
          (*(code *)PTR_abort_0004238c)();
          return;
        }
      }
      puVar11 = (uint *)((int)puVar11 + 1);
      piVar9 = piVar9 + 1;
      cVar8 = cVar19;
    } while (puVar14 != puVar11);
    if (cVar19 == '\0') goto LAB_000274c4;
  }
  FUN_000207a4(param_3);
  *(undefined1 *)(param_3 + 0xcc) = 0;
  param_3[0xca] = (uint)(PTR_LAB_000421fc + 0x2944);
  *(undefined1 *)(param_3 + 0xac) = 1;
LAB_00027418:
  puVar14 = param_4;
  FUN_00022e74(param_3);
  puVar11 = (uint *)param_3[0xb5];
LAB_00027350:
  if (puVar11 != (uint *)0x0) {
    *(undefined1 *)(param_3 + 0xac) = 1;
    FUN_00022e74();
    puVar14 = param_4;
  }
  if (iVar1 != *(int *)PTR___stack_chk_guard_000424f0) {
    puVar20 = PTR___stack_chk_fail_000424d0;
    (*(code *)PTR___stack_chk_fail_000424d0)();
    (**(code **)(puVar20 + 0x1af18))();
    if (*(char *)puVar14 == '\0') {
      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x2944;
    }
    else {
      uVar2 = *(int *)(puVar20 + 0x1acf8) + 0x21d0;
    }
    puVar11[0xca] = uVar2;
    bVar7 = false;
    if (*(char *)puVar14 == '\0') {
      iVar1 = (**(code **)(puVar20 + 0x1aee4))(6,0);
      if (iVar1 == 0) {
        bVar7 = true;
      }
      else {
        iVar13 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x234);
        if (iVar13 == 0) {
          bVar7 = true;
        }
        else {
          iVar1 = (**(code **)(puVar20 + 0x1b014))(iVar1,*(int *)(puVar20 + 0x1ac74) + -0x230);
          bVar7 = iVar1 == 0;
        }
      }
    }
    *(bool *)(puVar11 + 0xcb) = bVar7;
    puVar3 = puVar11 + 0xcc;
    puVar17 = puVar14 + 0x140;
    do {
      uVar5 = puVar14[1];
      uVar15 = puVar14[2];
      uVar2 = puVar14[3];
      *puVar3 = *puVar14;
      puVar3[1] = uVar5;
      puVar3[2] = uVar15;
      puVar3[3] = uVar2;
      puVar14 = puVar14 + 4;
      puVar3 = puVar3 + 4;
    } while (puVar14 != puVar17);
    *puVar3 = *puVar14;
    *(byte *)(puVar11 + 0xac) = *(byte *)(puVar11 + 0xcc) ^ 1;
    puVar11[0x95] = 0xffffffff;
    puVar11[0x9d] = 1;
    *(undefined1 *)(puVar11 + 1) = 1;
    *(byte *)((int)puVar11 + 5) = (byte)((uVar12 << 9) >> 0x1f);
    *(byte *)((int)puVar11 + 6) = (byte)uVar16 & 1;
    uVar10 = 10;
    if ((uVar16 & 2) != 0) {
      uVar10 = 0;
    }
    *(undefined1 *)((int)puVar11 + 7) = uVar10;
    *puVar11 = uVar12;
    uVar2 = 0xffffff80;
    iVar1 = *(int *)(puVar20 + 0x1acf8);
    iVar13 = *(int *)(puVar20 + 0x1ac74);
    do {
      if (((uint)*(byte *)((int)puVar11 + 7) == (uVar2 & 0xff)) &&
         (*(char *)((int)puVar11 + 6) == '\0')) {
        *(undefined1 *)((int)puVar11 + (uVar2 & 0xff) + 8) = 4;
        (*(code *)(iVar1 + -0xc90))(uVar2 & 0xff,puVar11 + 0x8a);
        cVar8 = *(char *)((int)puVar11 + 0x331);
      }
      else {
        uVar12 = uVar2 & 0xff;
        if ((puVar11[uVar12 + 0x10d] == 0xffffffff) ||
           ((piVar9 = (int *)(**(code **)(puVar20 + 0x1ae70))(),
            (*(ushort *)(*piVar9 + uVar12 * 2) & 0x800) == 0 && ((uVar2 & 0xff) != 0x5f)))) {
          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 1;
          cVar8 = *(char *)((int)puVar11 + 0x331);
        }
        else {
          *(undefined1 *)((int)puVar11 + uVar12 + 8) = 2;
          (*(code *)(iVar1 + -0xc90))(uVar12,puVar11 + 0x82);
          cVar8 = *(char *)((int)puVar11 + 0x331);
        }
      }
      if (cVar8 == '\0') {
        iVar6 = (**(code **)(puVar20 + 0x1af4c))(iVar13 + -0x228,uVar2 & 0xff);
        bVar7 = iVar6 != 0;
      }
      else {
        bVar7 = (uVar2 & 0xc0) != 0x80;
      }
      *(bool *)((int)puVar11 + (uVar2 & 0xff) + 0x108) = bVar7;
      uVar2 = uVar2 + 1;
    } while (uVar2 != 0x80);
    return;
  }
  return;
}

